c# - 如何在 C# 中将 Graphic 绘制为 byte[] 数组(byte[] 也将包括绘图)
问题描述
我想将 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
希望大家帮助我。谢谢
解决方案
如何在 C# 中将 Graphic 绘制为 byte[] 数组(byte[] 也将包括绘图)
当你使用
Graphics newGraphics = Graphics.FromImage(image)
您基本上所做的就是使用这些方法将原件image
直接绘制到它上面Graphics
。
完成绘图后,Graphics
您可以保存image
或将其转换image
为字节 []。
确保你完成Dispose()
的Graphics
时间也是如此,因为它使用内存和其他IDisposable][4]
需要清理的资源,然后才能被垃圾收集器收集
推荐阅读
- google-drive-api - 修补/更新谷歌驱动文件元数据中属性列表中的特定键值
- java - 如何配置Oracle云证书?
- r - 如何在 R 中手动执行交互项?
- android - 在项目“应用程序”中,已解决的 Google Play 服务库依赖项依赖于另一个确切版本(例如“[11.0.4]”
- prometheus - Process_Exporter 找不到我感兴趣的单个进程
- react-native - 底部导航栏的反应原生复杂形状
- javascript - 如何通过使用数组进行比较来创建警报
- neo4j - NEO4J 在加载 CSV 时创建关系
- css - 如何在“td”标签内保存没有换行符的空格?
- html - 子域可以在父域上设置cookie吗