Seite 2 von 7
Verfasst: 07.11.2004 17:10
von Andre
Danilo hat geschrieben:[EDIT]
NicTheQuick hat Recht. Ist ein 32-bit BMP, und war früher
meist unüblich. Laut MSDN -> BITMAPINFOHEADER ist
das aber korrekt, d.h. 32-bit BMP sind offiziell erlaubt und
dokumentiert. Das erklärt auch warum es Größer ist als
dann mit 24-bit.
Scheinbar also ein PB-Problem mit 32-bit-BMP?
Zur Überprüfung an Fred gemeldet.

Verfasst: 07.11.2004 18:02
von Lars
NicTheQuick hat geschrieben:Am Anfang steht 654 mal die Bytefolge [c]'0000 00FF'[/c]. Auch weiterhin, wo anscheinend die nicht-schwarzen Bilddaten kommen, steht an vierter Stelle jedesmal dieses 'FF'.
Das ist eigentlich ziemlich einfach zu erklären. Bei einer 24 Bit BMP hat ja
ein Punkt 24 Bit = 1 Byte Rot, 1 Byte Grün, 1 Byte Blau. In einer 32 Bit
BMP dagegen hat jeder Pixel noch einen Alphawert, der natürlich auch bei
schwarzen Punkten 100% Deckkraft angibt.
Verfasst: 07.11.2004 18:09
von NicTheQuick
@Lars: Stimmt, du hast Recht. Ich hatte irgendwie im Kopf, dass der Alphawert 00 volle Deckkraft hat. LOL

Verfasst: 07.11.2004 19:34
von GPI
NicTheQuick hat geschrieben:@Lars: Stimmt, du hast Recht. Ich hatte irgendwie im Kopf, dass der Alphawert 00 volle Deckkraft hat. LOL

Auslegungssache. Ist es jetzt Deckkraft oder Transparents

Verfasst: 08.11.2004 16:22
von sbehrens
Nochmal vielen Dank für eure Antworten, jetzt verstehe ich das mit dem 24- und 32-Bit (Ich hatte übrigens den Screen im 32-Bit Modus, habe es jetzt aber auf 24-Bit umgestellt, da 32-Bit-Screens ohne 32-Bit Bitmaps sinnlos sind.)
Kann man dann eigentlich, indem man den Alphawert der Pixel, die durchsichtig seien sollen, auf '00' setzt, einen Screen im 32-Bit Modus öffnen und die Sprites werden da wo der Alphawert auf '00' steht durchsichtig? D.h. man könnte (vorausgesetzt der 32-Bit Modus funzt auch richtig) theoretisch die Sprites mit [c]DisplaySprite()[/c] anstatt mit [c]DisplayTransparentSprite()[/c] darstellen, und trotzdem haben sie eine Transparenz.

(Ich hoffe das haben alle verstanden)
Jetzt ist mir noch eine Sache aufgefallen:
Mein Freund hat mir zB. auch die HalfBoss.bmp geschickt, diese Pic ist aber 100x100 Pixel groß.
http://de.geocities.com/basti_2004/halfboss.bmp (~40KB 32-Bit)
http://de.geocities.com/basti_2004/halfboss_mod.bmp (~30KB 24-Bit)
Der Unterschied zu den 50x50 Pixel großen Pics besteht darin; das
hier auch das 32-Bit Pic funzt?!?! Sehr, sehr seltsam.
mfG
Basti
//Edit: Thx @Nic
Verfasst: 08.11.2004 23:31
von Lars
ptI hat geschrieben:Kann man dann eigentlich, indem man den Alphawert der Pixel, die durchsichtig seien sollen, auf '00' setzt, einen Screen im 32-Bit Modus öffnen und die Sprites werden da wo der Alphawert auf '00' steht durchsichtig?
Ich fürchte nicht, da PB den Alphakanal nicht mag. Vielleicht später mal

Verfasst: 09.11.2004 14:09
von Robert Wünsche
Kann ja mal einer dazuprogen !
Verfasst: 09.11.2004 16:37
von NicTheQuick
@ptI: Bleib lieber bei dem 32-Bit-Screen-Modus. Es gibt Grafikkarten, die den 24-Bit-Modus nicht besonders mögen und dann auch einiges langsamer sind als bei 16 Bit oder 32 Bit. Die heutigen Grafikkarten sind sowieso meist eher auf 32 Bit optimiert und sind dort wohl auch am schnellsten.
Das hängt vielleicht auch damit zusammen, dass ungerne in 3-Byte-Schritten geschrieben wird, sondern viel lieber in 2- oder 4-Byte-Schritten.
Naja, aber das ist auch nur eine wage Vermutung...
Verfasst: 09.11.2004 18:58
von GPI
Das hängt vielleicht auch damit zusammen, dass ungerne in 3-Byte-Schritten geschrieben wird, sondern viel lieber in 2- oder 4-Byte-Schritten.
Naja, aber das ist auch nur eine wage Vermutung...
Vermutlich die richtige Vermutung. Eine Mulitplikation mal 2 oder 4 ist sehr schnell, da man nur bitweise verschieben muß. Bei mal 3 muß man kompliziert rechnen.
Die Berechnungen sind notwendig um die Manipulation der Adresse für die Pixel zu bestimmen.
Verfasst: 10.11.2004 03:43
von Kaeru Gaman
Zusatzfrage:
gibt es eine möglichkeit, 24bit bmps als 16bit zu speichern?
ich will speicherplatz sparen, da ich viele, viiieeeele sprites verwenden will...
[EDIT]
oder kann ich irgentwie, irgentwomit den alpha-kanal ordentlich einbinden und editieren ?
