PDA

Volledige versie bekijken : Waar is getPixel resultaat uit opgebouwd?


Heedless
%Europe/Berlin %902 %2006, 21:39
Ik heb 1 korte vraag.
Waar is de waarde die getPixel terug geeft uit opgebouwd? Zwart geeft hij bijv aan als '1776411'. Maar wat is het syteem er achter? 000000000 ofzo kan ik nog begrijpen maar in 1776411 zie ik de opbouw niet :(

Roenes
%Europe/Berlin %936 %2006, 22:29
Dat is een hexadecimaal getal. Doe eens iets als dit:
trace(trace("0x" + bla.getPixel(...).toString(16).toUpperCase());Even natuurlijk de AS helemaal goed schrijven, maar het gaat om dit idee. Als het goed is krijg je dan steeds een string terug met een hexadecimaal getal. Als dat zo is, dan weet je denk ik wel hoe het principe werkt :)

Heedless
%Europe/Berlin %979 %2006, 23:30
He! Logisch! =D

Bedankt.

Hoe kan je trouwens terug rekenen? Stel dat ik de hexadecimale waarde wil hebben van een bepaalde kleur, hoe krijg ik die?

Ik ging al even iets proberen van om een string om te rekenen naar zijn hex waarde maar ik kwam er niet uit

SaphuA
%Europe/Berlin %979 %2006, 23:30
1776411 kan nooit zwart zijn ;)
Maar wat Roenes zegt klopt inderdaad.

Edit:
function RGBtoHEX(R, G, B) {
return (R << 16 | G << 8 | B);
}
function HEXtoRGB(HEX) {
var R = HEX >> 16;
var GB = HEX-(R << 16);
var G = GB >> 8;
var B = GB-(G << 8);
return {r:R, g:G, b:B};
}
trace(RGBtoHEX(255, 0, 0));
trace(RGBtoHEX(255, 0, 0).toString(16).toUpperCase());
trace(HEXtoRGB(1776411).r+", "+HEXtoRGB(1776411).g+", "+HEXtoRGB(1776411).b);

Heedless
%Europe/Berlin %020 %2006, 00:28
776411 kan nooit zwart zijnInderdaad, zag ik net ook ;)
Logisch, als je de lens bedekt wordt het heel donker en ontstaat er ruis, net als in een digitale camera :)
Bedankt voor de code! :D

Heedless
%Europe/Berlin %550 %2006, 13:13
Even een oud topic hervatten:

Met de code die SaphuA gaf kan ik mijn rgb waardes omrekenen naar de hex waardes. Bijvoorbeeld groen:trace(RGBtoHEX(0, 255, 0).toString(16).toUpperCase());

Als uitkomst krijg je dan FF00, typ je dat in in de colorpicker dan werkt dat, maar als je dat in een script wilt gebruiken niet. Ik doe nu dit in mijn script: trace("0xFF"+RGBtoHEX(0, 255, 0).toString(16).toUpperCase()); want ik heb een waarde zoals 0xFF00FF00 nodig. Maar die 1e groep nullen wordt weggelaten wanneer je de kleuren 0, 255, 0 opzet naar een hex waarde.
Hoe kan je dat voorkomen?

keuken
%Europe/Berlin %555 %2006, 13:19
0xFF00FF00 kan toch niet?
Het is 0x00FF00

RRGGBB (RRood GGroen BBlauw)

Heedless
%Europe/Berlin %565 %2006, 13:34
0xFF00FF00 kan toch niet?
Het is 0x00FF00

RRGGBB (RRood GGroen BBlauw)

Niet als je er een alpha channel in hebt ;)

Ik heb nu al een manier gevonden, ik kijk gewoon hoe lang hij is, is hij 4 tekens dan zet ik er 2 nullen voor. Zal niet altijd werken maar is goed genoeg.
Binnenkort meer vragen :p

--edit,

ok, werkt meteen al niet, want je kan natuurlijk ook nog eens geen groen of blauw kanaal hebben... daar geeft hij gezeur mee...