System.Drawing.Graphics очень большие изображения - PullRequest
3 голосов
/ 17 марта 2011

Я создаю базовую программу просмотра 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);
}

Один конкретный файл, с которым я имею дело, имеет около десяти 8000x8000 пикселей .tif файлов.Нет необходимости говорить, что вышесказанное выглядит довольно неплохо, за исключением OutOfMemory.

Файлы сжимаются до нескольких мегабайт каждый.Кто-нибудь может предложить лучшую стратегию их рендеринга?

1 Ответ

0 голосов
/ 17 марта 2011

Вы используете .NET 4?Если это так, вы можете использовать файлы Memory Mapped, чтобы «загружать» данные в память и считывать только те биты, которые вам нужно отобразить на экране.

...