1

我想将 Graphic 转换为 byte[] 数组。这段代码将向大家展示我的想法。

        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

如您所见,执行绘制之后newGraphics是已绘制的图像。

我的想法到了这里,我不知道如何将其转换为 byte[] 因为我仍然不了解 C# 的 System.Drawing.Graphics

希望大家帮助我。谢谢

4

1 回答 1

1

如何在 C# 中将 Graphic 绘制为 byte[] 数组(byte[] 也将包括绘图)

当你使用

Graphics newGraphics = Graphics.FromImage(image)

您基本上所做的就是使用这些方法将原件image直接绘制到它上面Graphics

完成绘图后,Graphics您可以保存image将其转换image为字节 []。

确保你完成Dispose()Graphics时间也是如此,因为它使用内存和其他IDisposable][4]需要清理的资源,然后才能被垃圾收集器收集

于 2021-05-15T13:27:05.020 回答