Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: TBitmap.Pixelformat = pfDevice! Check auf 32Bit ?

  Alt 6. Sep 2005, 04:13
Hm, Schnellschuss :

Es gibt:
a) Bitmap 24Bit mit 1Bit Maske
b) Bitmap 32Bit mit 1Bit Maske, aber auch mit Alpha im höchsten Byte der Farbwerte

Nun wäre interessant ob die 24-Bitter wegen des Alignments nicht auch mit 32Bit pro Pixel gespeichert werden. Wäre dem nicht so, wärst du mit einem Vergleich "Bildgrößeateigröße" dabei -> der 24-Bitter wäre in Bytes ausgedrückt kleiner.

Sollte es aber doch so sein dass die 24er 32bpp belegen, so wäre interessant was dort im höchsten Byte steht. Mal angenommen wir haben Glück und sie sind immer $00:
Dann kannst du zunächst mal alle als 32er ansehen. Wenn sich auch nur eines dieser Bytes findet dass nicht 0 ist, wäre anzunehmen du hast ein echtes 32bpp Bitmap, und die 1Bit-Maske hat keine Bedeutung. Sind jedoch alle 0, wäre beides möglich, aber es macht keinen Unterschied mehr - du kannst die 1Bit-Maske blind anwenden. Damit wird ein 24er korrekt maskiert, und beim 32er ist die Maske eh komplett leer, so dass sie nichts am Bild ändert.
(Das setzt jedoch voraus, dass die 1Bit-Makse bei den 32ern am Alpha-Byte orientiert ist, und nicht separat davon "schrott" enthalten kann. Das weiss ich nicht.)

Ich hoffe dieser nächtliche Gedankenanflug ist nicht allzu abwegig


Gruss,
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat