System.Drawing.Graphics非常大的图像

时间:2011-03-17 09:51:55

标签: c# image graphics bitmap drawing

我正在创建一个基本的autocad查看器,它必须处理非常大的图像。

我正在使用System.Drawing.Graphics通过以下方式呈现图像:

Bitmap imageData;

public void Init(string filepath)
{
    imageData = new Bitmap(filepath);
}

public void Render(System.Drawing.Graphics ctx)
{
    ctx.DrawImage(imageData, x, y, w, h);
}

我正在处理的一个特定文件有大约10个8000x8000像素.tif文件。毋庸置疑,上面的内容与OutOfMemory异常相差无几。

文件被压缩到几兆字节。任何人都可以提出更好的策略来渲染它们吗?

1 个答案:

答案 0 :(得分:0)

您使用的是.NET 4吗?如果是这样,您可以使用内存映射文件将数据“加载”到内存中,只读取您需要在屏幕上呈现的位。