Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TBitmap mit 50.000 x 50.000 pixel

  Alt 24. Nov 2021, 10:03
Ich vermute, das Problem besteht am Ende darin, weil die gängige Implementation für Bitmaps immer Speicherbereiche am Stück allozieren möchte.
Das ist dann bei 50000 x 50000 Pixel x 4 Byte (32-Bit Farbraum - Default-Farbtiefe) schnell mal 9.536,74 MiB unfragmentierter Speicher, den der Speichermanager anfordert.
Und das, obwohl ein leeres weißes TIFF dieses Ausmaßes auf der Festplatte/SSD nur 6,53 MB (6.850.250 Bytes) belegt.
Da ist bei vielen Systemen mit einer RAM-Ausstattung von 16 GB schnell Schicht im Schacht.

Anwendungen wie IrfanView oder Paint.Net verarbeiten höchstwahrscheinlich solche Dateien mit Techniken wie das einlesen von einzelnen Regions/Tiles (also kleineren Einzelbildern) anstatt alles am Stück und die werden dann entsprechend der Anzeigengröße noch skaliert dargestellt.
  Mit Zitat antworten Zitat