converting string to image..??

G

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
 
M

Mythran

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
 
G

Guest

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
 
M

Mythran

iwdu15 said:
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

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top