Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Größe eines Bitmap in Byte (https://www.delphipraxis.net/96778-groesse-eines-bitmap-byte.html)

guidok 30. Jul 2007 21:14


Größe eines Bitmap in Byte
 
Ähm, mal ne dumme Frage, aber wie ermittle ich die Größe eines Bitmaps in Byte? Ich benötige das, um ein Bitmap in einem FileStream zu speichern, aber mit SizeOf(Bitmap) erhalte ich natürlich nur die Größe des Zeigers. Ich steh grad etwas auf dem Schlauch und komm trotz Sucherei nicht so recht weiter...

Dank!

mkinzler 30. Jul 2007 21:16

Re: Größe eines Bitmap in Byte
 
http://www.dsdt.info/tipps/?id=328

guidok 30. Jul 2007 21:20

Re: Größe eines Bitmap in Byte
 
Danke für die Antwort, aber ich fürchte ich habe mich falsch ausgedrückt. Ich möchte die Größe eines TBitmaps wissen, das ich in einem TImage anzeigen lasse und nun zusammen mit einigen anderen Daten in einem FileStream speichern möchte.

mkinzler 30. Jul 2007 21:22

Re: Größe eines Bitmap in Byte
 
Müsste aus der Grösse des Bildes und der farbtiefe berechenbar sein.

guidok 30. Jul 2007 21:25

Re: Größe eines Bitmap in Byte
 
Also in der Art Höhe x Breite x Farbtiefe, richtig?

mkinzler 30. Jul 2007 21:26

Re: Größe eines Bitmap in Byte
 
ja.

turboPASCAL 30. Jul 2007 21:27

Re: Größe eines Bitmap in Byte
 
Pro Farbe ein Byte * Weite und Höhe.

Size := 1024 * 768 * 1 + 256 bei 8 Bit + 256? (ein Byte pro Farbe + Palettengrösse)
Size := 1024 * 768 * 3 bei 24 Bit
Size := 1024 * 768 * 4 bei 32 Bit

Hawkeye219 30. Jul 2007 21:42

Re: Größe eines Bitmap in Byte
 
Hallo,

eigentlich benötigt man die Größe ja gar nicht, da die Bitmap selbst in der Lage ist, sich in einen Stream zu speichern: Delphi-Referenz durchsuchenTBitmap.SaveToStream.

Falls du den Wert für einen anderen Zweck benötigst, kannst du ihn berechnen lassen:

Delphi-Quellcode:
var
  Bitmap : TBitmap;
  InfoHeaderSize : Cardinal;
  ImageSize : Cardinal;
begin
  Bitmap := TBitmap.Create;
  Bitmap.SetSize (400, 50);
  Bitmap.PixelFormat = pf24Bit;
  {Graphics.}GetDIBSizes (Bitmap.Handle, InfoHeaderSize, ImageSize);
  Bitmap.Free;
end;
Gruß Hawkeye

guidok 31. Jul 2007 10:34

Re: Größe eines Bitmap in Byte
 
Vielen Dank, ich mit den Infos experimentieren.

Bitmap.SaveToStream habe ich auch schon entdeckt, aber ich glaube das nützt mir hier nichts, da ich ein dynamisches Array eines Records in eine Datei speichern will und dieser Record enthält unter anderem auch ein Bitmap.

Ich möchte also in folgender Reihenfolge speichern:

1. Anzahl der Elemente im Array
2. Größe des Bitmap
3. Daten des Bitmap
4. Größe des String
5. Daten des String
6. usw.

Guido


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 Uhr.

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