Zur Überprüfung an Fred gemeldet.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?
Darstellungsfehler bei BMP's ?
- Andre
- PureBasic Team
- Beiträge: 1765
- Registriert: 11.09.2004 16:35
- Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10 - Wohnort: Saxony / Deutscheinsiedel
- Kontaktdaten:
Das ist eigentlich ziemlich einfach zu erklären. Bei einer 24 Bit BMP hat jaNicTheQuick 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'.
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.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
- NicTheQuick
- Ein Admin
- Beiträge: 8812
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Auslegungssache. Ist es jetzt Deckkraft oder TransparentsNicTheQuick hat geschrieben:@Lars: Stimmt, du hast Recht. Ich hatte irgendwie im Kopf, dass der Alphawert 00 volle Deckkraft hat. LOL
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
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
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.
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
Zuletzt geändert von sbehrens am 10.11.2004 20:18, insgesamt 1-mal geändert.
enjoy life... while you can!
Ich fürchte nicht, da PB den Alphakanal nicht mag. Vielleicht später malptI 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?
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
-
Robert Wünsche
- Beiträge: 243
- Registriert: 29.08.2004 12:46
- Wohnort: Irgendwo im nirgendwo
- Kontaktdaten:
- NicTheQuick
- Ein Admin
- Beiträge: 8812
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
@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...
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.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...
Die Berechnungen sind notwendig um die Manipulation der Adresse für die Pixel zu bestimmen.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22