我正在创建一个基本的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异常相差无几。
文件被压缩到几兆字节。任何人都可以提出更好的策略来渲染它们吗?
答案 0 :(得分:0)
您使用的是.NET 4吗?如果是这样,您可以使用内存映射文件将数据“加载”到内存中,只读取您需要在屏幕上呈现的位。