diskilla
Goto Top

PureBASIC - Suche Farbtabelle

Suche Farbtabelle für PureBASIC

Hallo Leute!

Ich habe vor ein paar Tagen angefangen PureBASIC zu lernen. In dem Tutorial das ich benutzt habe (das von www.purebasic.de1), heißt es, dass im Anhang A eine vollständige Liste enthalten sei. Leider gibt es keinen Anhang. Naja jedenfalls suche ich jetzt eine Liste mit den wichtigsten Farbparametern.

Zur not reicht auch ne Erklärung, wie ich den Wert selbst errechnen kann.

Außerdem ist das Tutorial an der Stelle über Farben scheinbar Fehlerhaft, denn was im Tut. steht unterscheidet sich von der bei liegenden Beispieldatei.

Damit auch jeder weiß, was ich meine hier mal ein Beispiel.

FrontColor(255,255,255) Weiß

Das ist das was im Tutorial stand und im Debug-Mode als Fehlerhaft erkannt wird.

FrontColor(255+256*255+256*256*255) Im Endeffekt Gelb

Kann mir bitte, bitte jemand erklären wie das funktioniert?
Bin nämlich mitlerweile etwas verwirrt.

Danke schonmal

Greetz

Diskilla

Content-ID: 45206

Url: https://administrator.de/contentid/45206

Ausgedruckt am: 28.11.2024 um 06:11 Uhr

geTuemII
geTuemII 23.11.2006 um 17:51:32 Uhr
Goto Top
Also zur PureBasic-Sytax kann ich dir leider nichts sagen, aber ich kann dir das mit den Farben erklären.

FrontColor(255,255,255) Weiß

Die drei Werte xxx,xxx,xxx sind der RGB-Wert der Farbe, das erste Triple gibt den Rot-Wert an, das zweite Blau und das Dritte Blau. So ergeben sich (255,0,0) --> Rot, (0,255,0) --> Grün und (0,0,255) --> Blau und (0,0,0) --> Schwarz. Alle Triples mit drei gleichen Werten ergeben unterschiedlich dunkle Grauwerte. Eine ganz gute Farbtabelle mit RGB-Werten findest du zb. unter http://www.pitt.edu/~nisg/cis/web/cgi/rgb.html

[EDIT]Gerade gefunden und evtl interessant: http://www.purearea.net/pb/german --> Anleitungen --> Zusätzliche Funktionen --> Farbtabelle und der Rest der Seite [/EDIT]

geTuemII
DaSam
DaSam 23.11.2006 um 18:56:37 Uhr
Goto Top
Hi,

die Triplets sind natürlich Rot, Grün, Blau ... war vermutlich nur ein Schreibfehler face-wink

cu,
Alex
geTuemII
geTuemII 23.11.2006 um 19:28:58 Uhr
Goto Top
... war vermutlich nur ein Schreibfehler face-wink

@alex:
Oder ein Freudscher: Donnerstag, Sackgasse programmiertechnischer Art und noch Monate bis Weihnachten... Da kann sowas schon mal passieren face-wink

@Diskilla:
Sam hat natürlich recht, aber damit alle wissen, wovon wir reden, korrigiere ich es oben _nicht_. So! :P

geTuemII
Diskilla
Diskilla 25.11.2006 um 14:48:02 Uhr
Goto Top
Coole Sache. Das war genau das, was ich gesucht hab.

Danke schön.

Trotzdem versteh ich eins immer noch nicht. Ich habe PureBasic 4.0 erworben und dort fu nktioniert nur diese Version

FrontColor(255+255*0+255*255+255)

Die Version mit den Kommas wird als WrongParameter bezeichnet.

Greetz Diskilla
DaSam
DaSam 26.11.2006 um 10:04:46 Uhr
Goto Top
Hi,

in PureBasic muss man anscheinend nicht die einzelnen Triplets angeben, sondern diese "ale ganze Zahl" formatieren.

Aber Achtung: Nicht mit 255 multiplizieren, sondern mit 256!!!

Wert = R + G*256 + B*256*256

oder

Wert = R*256*256 + G*256 + B

Gibt es in PureBasic eine Funktion namens RGB(), die würde das "umrechnen" von sich aus machen ...

cu,
Alex
Diskilla
Diskilla 26.11.2006 um 12:45:32 Uhr
Goto Top
ok das klingt logisch und funktioniert, aber warum geht es auch, wenn ich mit 255 multipliziere?
DaSam
DaSam 26.11.2006 um 12:51:13 Uhr
Goto Top
Hi,

es würde auch ansatzweise gehen, wenn Du es mit 200 multiplizierst face-wink

Das RGB triplet wird halt in einer 3 Byte Darstellung abgebildet, ein byte hat halt nunmahl den Werteumfang von 0..255, also muss man, um ein Byte um 8 bit zu verschieben, diesen Wert mit 256 multiplizieren.

Wenn Du 3 kg Äpfel kaufen willst - wieviel Gramm macht das? 3x1000g=3000g - das macht auch nicht viel Unterschied, wenn Du das kg mit 998 Gramm annimmst - du bekommst halt 6 Gramm weniger und irgendwann wird Dir auffallen, dass dich jemand beschi**en hat face-wink

cu,
Alex
Biber
Biber 26.11.2006 um 12:55:48 Uhr
Goto Top
ok das klingt logisch und funktioniert, aber warum geht es auch, wenn ich mit 255 multipliziere?

Möglicherweise kannst Du die Farbunterschiede nicht so gut wahrnehmen, wenn bei 24-Bit-Zahlenwerten Unterschiede von ein paar 10000 herauskommen.
Einige unter uns können nicht mal Rot und Grün unterscheiden, geschweige denn ein Rot(134) von einem Rot(145).
In letzter Zeit mal bei Fielmann vorgesprochen? face-wink

Ob bzw. dass da etwas Unterschiedliches herauskommt, kannst Du ja hinterher überprüfen durch die PureBasic-Funktionen Red(), Green() und Blue(), die Dir den einzelnen RGB-Wert je Farbe rausfieseln.

Gruß
Biber
Diskilla
Diskilla 27.11.2006 um 12:47:22 Uhr
Goto Top
In letzter Zeit mal bei Fielmann
vorgesprochen? face-wink


Hab 125% Sehkraft haha face-wink
Spaß bei Seite.
habs verstanden.
Hab auch in der Hilfe Datei von PB was gefunden.

Man kann auch den Befehl so schreiben:

FrontColor(RGB(145,255,145))

Damit gehts und das kann ich mir gut merken.
^^
Biber
Biber 27.11.2006 um 13:03:49 Uhr
Goto Top
FrontColor(RGB(145,255,145))
Damit gehts und das kann ich mir gut merken.

Ist ja auch intuitiv verständlich und fast schon selbstdokumentierend.. face-big-smile

Zur Lern- und Erfolgskontrolle:
Kannst Du Deinen Beitrag dann mit einem grünen Haken versehen bitte?

Dies ist nämlich ein ein Mod-loser Nebenarm des Forums hier.

Gruß
Biber
Diskilla
Diskilla 28.11.2006 um 08:45:55 Uhr
Goto Top
Danke hätt ich vergessen.