我有一个使用C#用ASP.NET Core编写的项目。目前,使用字节数组创建光栅或矢量图形是一项非常重要的任务。本质如下
有一个字段,尺寸为8x8正方形
一些方格(其余方格是空的,可以保持不变)包含一个100 x 100像素的网格(即,主字段的一个方格中有10,000 个像素)。
此类正方形(网格状,即非空)表示为以下类型的数组:
byte[] square27 = new byte[] { 0, 0, 0, 0, 0, 0, 1, 0, 2, 2, 0, 0, 1, ... };//Размерность массива 10000 значений
,其中0是空像素,1是一种颜色(例如蓝色)的像素,2是另一种颜色(例如蓝色)的像素。
这个想法是这样的。循环遍历数组的每个元素并绘制所需颜色的点。在输出端,获取使用不同颜色的像素方块构建的光栅或矢量图像。
在输出端,您需要获得一张图像,但能够在不损失质量的情况下放大 4-6 倍,并且将来能够在客户端更改这些颜色......
网络上...
问题是,如何在C#中做到这一点?我没有在互联网上找到必要的信息。有没有可以实现这个的库?或者标准库中有一些方法?跨平台工作是非常可取的(但不是必需的)。使用核心。




我的代码所剩无几(只有一个数组),其他一切都由@aepot 完成
光栅解决方案、Windows GDI+ 库、System.Drawing.Common NuGet 包。
由于我不知道您的数据结构,更准确地说,我只知道“瓷砖”的数组大小,我会自己想出。
这是一个简单的示例,如何从与您的数据相似的数据中获取 800x800x8bit PNG。就像您为 8x8 网格编号一样,数字越大,瓷砖越轻。
结果是这个 PNG 的权重为 13 KB。
位图可以以相同的方式保存
Stream并立即作为文件附件提供给客户端。在我的计算器上生成这张图片大约需要 8 毫秒。