Poste es mal lieber in .Net - Plain Delphi hat auch hiermit keine Probleme:
Delphi-Quellcode:
var
LBitmap : TBitmap;
LRect : TRect;
begin
LRect := Rect(0,0,20000,20000);
LBitmap := TBitmap.Create;
LBitmap.PixelFormat := pf32bit;
LBitmap.Width := LRect.Width;
LBitmap.Height := LRect.Height;
LBitmap.Canvas.Brush.Color := clGreen;
LBitmap.Canvas.FillRect(LRect);
LBitmap.SaveToFile('c:\temp\monsterbitmap.bmp');
Doch, Delphi 7 hat es, aber nicht weil es Delphi 7 ist sondern weil
Delphi-Quellcode:
---------------------------
Project1
---------------------------
Systemressourcen erschöpft.
---------------------------
OK
---------------------------
Kommt drauf an, wieviel Speicher man hat. Wenn ich es (halbwegs) recht weiß, werden pro Pixel 4 Byte benötigt, macht bei 20.000 * 20.000 * 4 = 1.600.000.000 Byte, die werden für ein derartiges Bitmap (unabhängig von der Entwicklungsumgebung) benötigt. Und die sind auf meinem Rechner nicht mehr verfügbar.
Bei 10000 * 10000 hat monsterbitmap.bmp auf der Festplatte eine Größe von 400.000.054 Byte. Die Fläche von 20000 * 20000 ist 4 mal so groß wie 10000 * 10000, damit dürfte meine obige Vermutung zutreffend sein.
Im Taskmanager konnte man schön sehen, wie der Speicherverbrauch zur Erstellung des Bildes um 400 MB hoch ging und anschließend wieder runter.