ARGB Wert

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Foppele

Betreff: ARGB Wert

BeitragMo, Nov 12, 2007 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
kann mir jemand mal ein Beispiel für die ARGB Variable geben, welche zum Beispiel WritePixel verlangt, und wie die gebildet wird?
Ich komm irgendwie nicht dahinter, Forumsuche war auch erfolglos...Read Pixel spuckt bei mir immer maximal
8 stellige Zahlen aus, manchmal auch kleinere - wie sollen denn da RGB und Alpha drin sein? Da bräuchte man doch 12 Stellen zu?
Sind das etwa Hex Werte, siehe anderer Thread unten?

EDIT
Oops,zu schnell gepostet, Ich schau mal in den Color zu Hex Thread, das scheint genau mein Problem zu sein Embarassed
 

Dreamora

BeitragMo, Nov 12, 2007 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Vor allem wär er einfach das umgekehrte von dem was erst gerade dir oder jemand anderem erklärt wurde bezüglich hex -> rot grün blau Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

The_Nici

BeitragMo, Nov 12, 2007 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitzbase.de hat Folgendes geschrieben:

So wird ein Farbcode abgespeichert:

Es wird ein Integerwert übergeben. Ein Integerwert besteht aus 4 Byte. Das erste Byte (von rechts!) gibt den Blauanteil einer Farbe wieder, das zweite Byte den Grünanteil und das dritte Byte den Rotanteil. Die Farbanteile sind Werte im Bereich von 0-255. Das vierte Byte gibt den Alpha-Wert wieder. Alpha ist ein Transparenzwert, der erst ab Blitz3D voll verfügbar sein wird. Es sind Werte zwischen 0 (transparent) bis 255 (normal) möglich. Blitz2D kann keine Transparenz darstellen, somit hat es den Wert 255. Bis V1.53 gab es keinen Alphawert.

FF FF FF FF - Farbcode in einem Integerwert

Blauanteil 0-255 (0h-FFh)
Grünanteil 0-255 (0h-FFh)
Rotanteil 0-255 (0h-FFh)
Beinhaltet ab V1.53 Alpha-Information 255 (FFh)
Erst ab Blitz3D ist Alpha voll verfügbar!!!

Berechnung der Farbanteile aus einem Farbcode:
a=(rgb AND $FF000000)/$1000000
r=(rgb AND $FF0000)/$10000
g=(rgb AND $FF00)/$100
b=rgb AND $FF

Berechnung des Farbcodes aus den Farbanteilen:
rgb=a*$1000000 + r*$10000 + g*$100 + b

Berechnung der Farbwerte ohne Alpha:
rgb2=rgb AND $FFFFFF


War für mich auch immer ein Problem. :>

StepTiger

BeitragMo, Nov 12, 2007 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst dir das hexadezimale auch ersparen, wenn du es einfach um 8 bit verschiebst.

argb->a,r,g,b

a=argb shr 24 and 255
r=argb shr 16 and 255
g=argb shr 8 and 255
b=argb and 255

a,r,g,b->argb

argb=a shl 24 + r shl 16 + g shl 8 + b

shl=shift left
shr=shift right

dahinter die zahl, um wie viele bit du es verschieben möchtest.
Mit Alpha hast du also 32 bit zum speichern.
31-24 = Alpha
23-16 = Rot
15-8 = Grün
7-0 = Blau

So einfach geht das Wink
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Foppele

BeitragMo, Nov 12, 2007 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
StepTiger hat Folgendes geschrieben:
So einfach geht das Wink


Also, wenn mein Bruder mir das nicht erklärt hätte, hätt ich's glaub ich nicht geschnallt...geht irgendwie schwer rein ins Hirn wenn man sein Leben lang mit normalem Dezimalsystem gerechnet hat.
Aber jetzt nachdem ichs kapiert habe, sieht's ganz einfach aus...

P.S. das mit dem um 8 Bit verschieben versuch ich morgen mal, mir raucht echt der Schädel - nicht lachen,aber was für erfahrene Programmierer Pillepalle ist, kann nem Anfänger schon einiges abverlangen, ich schätze mich sonst eigentlich nicht als besonders schwer von Begriff ein...

Danke für die Hilfe Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group