Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Speicherverbrauch von komprimierten Bildtypen (https://www.delphipraxis.net/85050-speicherverbrauch-von-komprimierten-bildtypen.html)

DerAndereMicha 25. Jan 2007 10:55


Speicherverbrauch von komprimierten Bildtypen
 
Hallo Zusammen,

weiß jemand von Euch wie ich den wahren Speicherverbrauch einer komprimierten
Grafik (z.B. JPG oder GIF) mit Hilfe von Delphi herausbekomme, das ist glaube
ich quasi die Größe, die sie auch auf der Festplatte verbrauchen würde, wenn
sie ein Bitmap (z.B. BMP) wäre.

Gruß
Micha

SirThornberry 25. Jan 2007 12:28

Re: Speicherverbrauch von komprimierten Bildtypen
 
dazu benötigst du die Bildgröße und die Farbtiefe kannst somit dann ausrechnen wieviel Byte verbraucht werden. Wozu brauchst du das? Mit dieser Variante weißt du zum Beispile nicht wieviel die Klasse zur Verwaltung der Bilddaten an Speicher benötigt.

Robert Marquardt 25. Jan 2007 12:56

Re: Speicherverbrauch von komprimierten Bildtypen
 
Ich habe so etwas mit dem TJclNullStream aus der JCL (JclStreams.pas) erledigt. Genaugenommen habe ich JclStreams.pas dafuer geschrieben. :-)
TJclNullStream ist ein Stream der nur Position und Size erhaelt. Die Daten schmeisst er weg. Wenn man nun das Bild im Bitmap-Format hat und mit SaveToStream in so einen Stream abspeichert, so hat man hinterher in Size die genaue Groesse als File.
Ich brauchte das damit ich ein GIF-Bild solange verkleinern konnte bis es kleiner als 64K war.

Fuer deine Zwecke duerfte es aber ausreichen die Groesse abzuschaetzen. X x Y x NumberOfBytesPerPixel. Dazu kommt noch der Bitmap-Header, der aber meist zu vernachlaessigen ist.

Namenloser 25. Jan 2007 13:01

Re: Speicherverbrauch von komprimierten Bildtypen
 
Allerdings sollte man dabei auch beachten, dass delphi bilder hexadezimal in der dfm speichert, dadruchwird es mehr platz brauchen, als im stream.

Robert Marquardt 25. Jan 2007 13:07

Re: Speicherverbrauch von komprimierten Bildtypen
 
Aber auch nur dort. Man kann das Bild auch in einer Resource aufheben und zur Laufzeit ins TImage laden. in der Resource ist es eine normale binaere Bitmap.

DerAndereMicha 25. Jan 2007 13:09

Re: Speicherverbrauch von komprimierten Bildtypen
 
Ich brauche die Größe nur zur Anzeige in einer Art ImageViewer (also nix mit DFM oder so). Der Ansatz mit der Größe und der Farbtiefe gefällt mir am besten, bleibt nur noch die Frage wie ich die "NumberOfBytesPerPixel" herausbekomme.

Gruß
Micha


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz