Como uso bitmaps grandes no .NET?

Estou tentando escrever um aplicativo de visualização de imagem leve. No entanto, existem limitações de memória do sistema com o .NET.

Ao tentar carregar bitmaps grandes 9000 x 9000 px ou maior, 24 bits), recebo uma System.OutOfMemoryException. Este é um PC com Windows 2000 com 2 GB de RAM (dos quais 1,3 GB são usados). Também leva muito tempo para tentar carregar os arquivos.

O código a seguir gera esse erro:

Image image = new Bitmap(filename);
using (Graphics gfx = this.CreateGraphics())
{
    gfx.DrawImage(image, new Point(0, 0));
}

Como este código:

Stream stream = (Stream)File.OpenRead(filename);
Image image = Image.FromStream(stream, false, false);
using (Graphics gfx = this.CreateGraphics())
{
    gfx.DrawImage(image, new Rectangle(0, 0, 100, 100), 4000, 4000, 100, 100, GraphicsUnit.Pixel);
}

Além disso, basta fazer exatamente isso:

Bitmap bitmap = new Bitmap(filename);
IntPtr handle = bitmap.GetHbitmap();

Este último código foi projetado para uso com o GDI. Ao pesquisar isso, descobri que esse é realmente um problema de memória em que o .NET tenta alocar o dobro do necessário em um único bloco contíguo de memóri

http: //bytes.com/groups/net-c/279493-drawing-large-bitmap

Sei de outros aplicativos (Internet Explorer, MS Paint etc.) que é possível abrir imagens grandes e rapidamente. Minha pergunta é,como uso bitmaps grandes com o .NET?

Existe alguma maneira de transmiti-los ou carregá-los sem memóri

questionAnswers(7)

yourAnswerToTheQuestion