Grafik: Pixel <-> Farben
Übersicht

lordlomexBetreff: Grafik: Pixel <-> Farben |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hallo liebe Community...
Ich arbeite gerade viel mit Pixen von Pixmaps und irgendwie will das alles nciht so wie ich will. Kann sich wer die folgendn Funktionen anschauen und mir sagen was falsch ist? Vermutlich habe ich die Reihenfolge der Farben vertauscht, ich weiß aber nicht was Standard ist (RGBA? ARGB? BGRA?). Die erste Funktion setz mir aus c(r,g,b,a) eine Farbe zusammren, die anderen sollen Farbkanäle extrahieren. Code: [AUSKLAPPEN] Function c:Int (r:Int,g:Int=-1,b:Int=-1,a:Int=255) If g<1 g = r b = r If r = 0 Then a = 0 EndIf Return (r | g*Int(2^8) | b*Int(2^16) | a*Int(2^24)) End Function Function r:Byte (c:Int) Return (c Mod 256) End Function Function g:Byte (c:Int) Return ((c Shr 8) Mod 256) End Function Function b:Byte (c:Int) Return ((c Shr 16) Mod 256) End Function Function a:Byte (c:Int) Return ((c Shr 24) Mod 256) End Function |
||
![]() |
mpmxyzBetreff: ARGB! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist das Format "ARGB". (Schau dir die entsprechenden Parameter mal an. ![]() BlitzMax: [AUSKLAPPEN] Return a Shl 24|r Shl 16|g Shl 8|b Übrigens: nutze zur Bestimmung der Farbanteile lieber das bitweise UND: BlitzMax: [AUSKLAPPEN] Function r:Byte (c:Int) mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
lordlomex |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank, deine Beispiele funktionieren. Mein gesamtcode leider immer noch nicht.
Denn ich weiß nicht mit welchem Typ ich Pixmaps erstellen muss damit ich "ARGB" bekomme: Zitat: format should be one of the following:
Format Description PF_A8 8 bit alpha PF_I8 8 bit intensity PF_RGB888 24 bit big endian RGB PF_BGR888 24 bit little endian RGB PF_RGBA8888 32 bit big endian RGB with alpha PF_BGRA8888 32 bit little endian RGB with alpha |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
PF_RGBA8888 | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
lordlomex |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber das ergibt doch so keinen sinn ![]() Ich hab schon viele Kombinationen durchgeschaut und komme nicht weiter. Angeziegt werden müsste hier z.B. ein roter Kreis mit grünem Rand. Angezeigt wird ein grauer Kreis mit grünem Rand? EDIT: Ach. vergesst es, meine Default-Werte bringen das irgendwie durcheinander.. Also, hat sich erledigt, ich hab dummerweise statt 1 eine 0 gemacht! Code: [AUSKLAPPEN] Function c:Int (r:Int,g:Int=-1,b:Int=-1,a:Int=255)
If g<0 ' <------ !!! g = r b = r If r = 0 Then a = 0 EndIf Return a Shl 24|r Shl 16|g Shl 8|b End Function Vielen Dank alos nochmal, mein Problem ist damit gelöst. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group