SetMaskColor... aber doch nicht transparent?!

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

real76

Betreff: SetMaskColor... aber doch nicht transparent?!

BeitragDo, Feb 28, 2008 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich habe ein Problem mit der Darstellung transparenter Flächen. Folgender Code:
Code: [AUSKLAPPEN]
....
SetMaskColor 255,0,255
Local Skatblatt:TImage = LoadImage ("incbin::skatblatt.png",MASKEDIMAGE)
Local test:TImage = LoadImage("incbin::boing.png",MASKEDIMAGE)
...
Repeat
   DrawImage Skatblatt,0,0
   Flip
Until KeyHit (KEY_ESCAPE)
sieht dann vergrößert so aus:
user posted image
Die rot eingekreisten rosa Flecken sollten nach dem SetMaskColor eigentlich transparent sein. Hat jemand vielleicht eine Ahnung, warum das nicht so ist? Embarassed

Falls ihr wissen wollt, ob die rosa Flecken wirklich den Farbwert 0xFF00FF haben: Grafik speichern, Grafikprogramm öffnen und einfach mal nachschauen. Bei mir zeigt er zumindest R:255 G:0 B:255 an - und das wundert mich.

Wenn ich "DrawImage Skatblatt..." durch "DrawImage test..." ersetze wird die Grafik korrekt angezeigt, inkl. der transparenten Stellen im Bild.

Gruß und Dank
René
 

Dreamora

BeitragDo, Feb 28, 2008 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Setblend MaskBlend hast du gesetzt oder? weil sonst gehts nicht.
vom aufruf her seh ich da keinen grund das es net gehen sollte ausser skatblatt hast du von jpg nach png konvertiert, dann stimmt vermutlich die tatsächliche farbe nimmer
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

real76

BeitragFr, Feb 29, 2008 0:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Unglaublich: Ich hatte das PNG "Skatblatt.png" mit Paint.NET erstellt, die "boing.png" hatte ich im Rahmen des Einsteigertutorials von www.2dgamecreators.com heruntergeladen.

Jetzt habe ich "Skatblatt.png" einmal mit PhotoFiltre geladen und einfach - OHNE ÄNDERUNG - gespeichert und siehe da: die Transparenz ist da funktioniert... Dann hab ich zur Bestätigung das (vorher funktinierende) "boing.png" in Paint.NET geladen und einfach wieder - ebenfalls ohne Änderung - gespeichert und siehe da: die Grafik wird nicht mehr transparent dargestellt. Irgendwie scheint Paint.NET die Ursache des Problems sein.

Eine Anmerkung noch: SetBlend MASKBLEND ist nicht notwendig.
 

Dreamora

BeitragFr, Feb 29, 2008 1:40
Antworten mit Zitat
Benutzer-Profile anzeigen
1. interessant das du blend net umstellen musst denn solid sollte mask eigentlich ignorieren.
2. Wegen Paint.NET: sicher das du 32bit png speicherst, net 16bit oder so? Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Suco-X

Betreff: ....

BeitragFr, Feb 29, 2008 2:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

1. interessant das du blend net umstellen musst denn solid sollte mask eigentlich ignorieren.


Weniger interessant wenn man bedenkt dass MASKBLEND Standard ist und nicht SOLIDBLEND.

Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
 

Dreamora

BeitragFr, Feb 29, 2008 3:36
Antworten mit Zitat
Benutzer-Profile anzeigen
ach ... ok.
kann das net so beurteilen, da ich mich nicht auf irgendwelche BM internen autosetups verlasse da die immer ma wieder ändern. Dachte eigentlich solid ist standard, da das device beim init darauf gesetzt wird, nicht auf maskblend. aber in dem fall nen punkt weniger Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Suco-X

Betreff: ....

BeitragFr, Feb 29, 2008 4:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Dachte eigentlich solid ist standard, da das device beim init darauf gesetzt wird, nicht auf maskblend.


Beim erstellen von Max2DGraphics findet man auf jeden Fall nur diese Zeilen
Code: [AUSKLAPPEN]

      Local t:TMax2DGraphics=New TMax2DGraphics
      
      t.blend_mode=MASKBLEND


Da ich auch keinen Bock auf Suche hatte habe ich das ganze einfach mit print getBlend() und print MASKBLEND überprüft.

Wäre der Standard Blend Modus jemals anders gewesen könntest du hier mindestens 5 Threads finden in denen sich die Leute wundern wieso DrawText einen schwarzen Hintergrund zeichnet.

Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB
 

real76

BeitragFr, Feb 29, 2008 9:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
2. Wegen Paint.NET: sicher das du 32bit png speicherst, net 16bit oder so? Smile
Wie gesagt: geöffnet, gespeichert... Mehr nicht.

Ich habe jetzt die beiden Dateien mal verglichen:
Paint.NET: 256x256 Pixel, 96 DPI, 32 Bit
PhotoFiltre: 256x256 Pixel, 72 DPI, 24 Bit

Ich nutze die letzte offizielle Version von Paint.NET, werde mir aber mal die 3.30 Beta anschauen. Da soll sich was mit PNG-Unterstützung getan haben.

Nachtrag: mit Paint.NET 3.30 Beta gibt's keine Probleme... Die Transparenz funktioniert problemlos.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group