Home All Groups Group Topic Archive Search About

converting string to image..??

Author
30 Jun 2006 5:39 PM
grawsha2000
Hi,

I'm trying to convert this simple string into image:

Dim bytes() as byte()=System.text.Encoding.ascii.GetBytes("123")
Dim memStream as System.IO.MemoryStream
Dim img as image


memStream.Write(bytes,0.bytes.length)
img=image.fromstream(memStream)      ' an error occurs here


vb.net returns an error: "invlaid parameter" for passing stream to the
image.

I don't want to read stream from file, as I am interested in reading
from input string (textbox).

MTIA,
Grawsha

Author
30 Jun 2006 8:46 PM
Mythran
<grawsha2***@yahoo.com> wrote in message
Show quoteHide quote
news:1151689186.591214.123040@y41g2000cwy.googlegroups.com...
> Hi,
>
> I'm trying to convert this simple string into image:
>
> Dim bytes() as byte()=System.text.Encoding.ascii.GetBytes("123")
> Dim memStream as System.IO.MemoryStream
> Dim img as image
>
>
> memStream.Write(bytes,0.bytes.length)
> img=image.fromstream(memStream)      ' an error occurs here
>
>
> vb.net returns an error: "invlaid parameter" for passing stream to the
> image.
>
> I don't want to read stream from file, as I am interested in reading
> from input string (textbox).
>
> MTIA,
> Grawsha
>

Ok, from what I understand, you want to write a string onto a image?

Dim s As String = "123"
Dim bmp As Bitmap = New Bitmap(1, 1)
Dim canvas As Graphics = Graphics.FromImage(bmp)
Dim size As Size
Try
    ' Measure the string.
    size = canvas.MeasureString(s, New Font("Verdana", 12))
Finally
    canvas.Dispose()
    bmp.Dispose()
End Try

bmp = New Bitmap(size.Width, size.Height)
canvas = Graphics.FromImage(bmp)

Try
    canvas.DrawString(s, New Font("Verdana", 12))
Finally
    canvas.Dispose()
End Try

' Now bmp contains the valid string.

HTH (untested code, btw, may have a few errors, but should work with minor
fixes).
Mythran
Author
30 Jun 2006 8:59 PM
iwdu15
well for one....i dont even know what this is making

Dim bytes() as byte()=System.text.Encoding.ascii.GetBytes("123")

try making it either

Dim bytes as byte()=System.text.Encoding.ascii.GetBytes("123")

or

Dim bytes() as byte=System.text.Encoding.ascii.GetBytes("123")


and see how that works
--
-iwdu15
Author
30 Jun 2006 9:46 PM
Mythran
Show quote Hide quote
"iwdu15" <jmmgoalsteratyahoodotcom> wrote in message
news:D2E10E66-D28C-4500-B5A6-2BDBBDEA4061@microsoft.com...
> well for one....i dont even know what this is making
>
> Dim bytes() as byte()=System.text.Encoding.ascii.GetBytes("123")
>
> try making it either
>
> Dim bytes as byte()=System.text.Encoding.ascii.GetBytes("123")
>
> or
>
> Dim bytes() as byte=System.text.Encoding.ascii.GetBytes("123")
>
>
> and see how that works
> --
> -iwdu15

His problem is that he is trying to load an image from a memory stream that
only contains the bytes of text.  The FromStream method expects a byte-array
containing the bytes of an image, not the bytes of a simple string.

By loading the byte-array into an image (FromStream method) he is getting an
exception.  So, to do this correctly, he needs to write the string onto an
image using the Graphics class.

HTH :)

Mythran