Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: max. TBitmap FMX vs. VCL

  Alt 22. Aug 2020, 16:38
Zitat:
bei VCL waren 20.000 x 20.000 pixel möglich
Ähhh neee?
In einer realen 32-Bit-Anwendung, mit 2 GB RAM, wird es erfahrungsgemäß schwer "immer" einen gemeinsamen Speicherblock über 700 MB zu bekommen.

In 32 Bit garnicht, denn bei pf32Bit wäre das Bitmao 1.6 GB groß und das in einem zusammenhängenden Speicherblock.


ImageEN hatte ich schon große Bilder geladen.
Die haben ein TIEBitmap, welches intern LZW-Komprimiert ist.

Bei Delphis TWICImage musste ich aber bissl kämpfen, denn für eine Vorschaufunktion hatte ich auch sehr große TIFF-Bilder geladen.
Beim StretchDraw zeigte sich aber, dass der Entwickler von Embarcadero eine Volltrottel war,
denn da wird das Bild zuerst in ein internes TBitmap geladen und dann auf den Canvas (ein anderes TBitmap) runterscaliert.
Dabei bietet die WIC-API (Windows Imaging Component) auf extreme Speichersparsamkeit ausgelegt, indem die API immer nur mit kleineren Bildauschntitten arbeitet, wenn der Trottel auch die vorhandene Scalierungs-Interfaces genutzt hätte.

Selbst in Win32 ohne IMAGE_FILE_LARGE_ADDRESS_AWARE konnte ich am Ende sogar TIFFs mit derartigen Größen laden.
Allerdings nur in einem kleinen Programm, welches noch wenig Speicher belegt, wenige DLL/BPL geladen hat und wo der Speicher noch nicht zu sehr fragmentiert ist.

So oder so, würde ich dir also LargeAddressAware oder besser 64 Bit empfehlen.
$2B or not $2B

Geändert von himitsu (22. Aug 2020 um 16:41 Uhr)
  Mit Zitat antworten Zitat