在C#中生成极大的图像

时间:2012-08-16 01:43:50

标签: c# .net memory bitmap

我需要生成一些大图,其宽度和高度可以达到数百万像素。请注意,我不想缩小图像。每个点必须代表一个像素。

现在使用Bitmap和Graphics对象,如果我将图像分割成较小的正方形但速度很慢,这是非常有可能的。

我已经计算了像素RGB值,所以想知道是否有办法用这些值创建一个字节数组并手动将它们保存为未压缩的BMP格式文件,而不是处理Bitmap类和Graphics的绘图函数类。

如果有助于加快这一过程,我会对不安全的代码感到满意。

2 个答案:

答案 0 :(得分:3)

如果您正在显示图形,为什么不使用像SVG这样的技术,可以用很少的处理能力动态渲染,但由于矢量扩展,可以扩展到接近无限的尺寸?

答案 1 :(得分:2)

(如果有什么东西可以读取这些文件,那就很好了......)

BMP format非常简单 - 您可以直接将其写入磁盘(我建议避免在内存中构建大文件,除非您有其他理由这样做)。有一个固定大小的标题,然后(对于24bpp)颜色序列在某个宽度上对齐。假设您可以选择宽度,您甚至不需要添加任何填充 - 只需为每个像素添加颜色行。