I want convert Graphic was drawn to byte[] array. This code will show everybody my ideas.
Graphics newGraphics = Graphics.FromImage(image);
// Draw it
Random rnd = new Random();
Color randomColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
Pen blackPen = new Pen(randomColor, 2);
// Create rectangle.
Rectangle rect = new Rectangle(int.Parse(val[2]), int.Parse(val[3]), int.Parse(val[4]), int.Parse(val[5])); //val[x] is 4 point to make Rectangle
// Draw rectangle.
newGraphics.DrawRectangle(blackPen, rect);
newGraphics.DrawString(lines[int.Parse(val[0])], new Font("font name", 4), Brushes.Red, rect); //draw string for name of Rectangle
As you can see, after perform draw newGraphics
is an image that has been drawn.
My idea got here, i don't know how to convert it to byte[] Because i still don't understand System.Drawing.Graphics of C#
Hope everybody help me. Thanks
When you use
what you're basically doing is taking that original
image
and drawing directly to it using theGraphics
methods.When you're done drawing with
Graphics
you could just save theimage
or convert theimage
to a byte[].Make sure to also
Dispose()
of theGraphics
when your done as well, since it uses resources like memory and other [IDisposable][4]
objects that need to be cleaned up before they can be collected by the Garbage Collector