Cytat
Hej
zgodnie z tym co napisał manual, do wyciągnięcia poszczegolnych składowy (r,g i

konkretnego koloru piksela należy użyć tego:
[php:1:6cbd11c2da]<?php
$rgb=imagecolorat($im,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>[/php:1:6cbd11c2da]
ale nic z tego nie działa i pokazuje zawsze zero, za wyjątkiem $b - zawsze 86. Czemu?
Problem występuje gdy tworzysz nowy obrazek za pomocą
imagecreate() bądź wczytujesz go z pliku o formacie, który ma indeksowane kolory (np. gif). Wtedy
imagecolorat() zwraca Ci indeks tego koloru, a nie faktyczną wartość RGB. Dla plików które przetrzymują kolory w postaci trójki RGB dla każdego piksela lub przy tworzeniu nowego obrazka za pomocą
imagecreatetruecolor(), zwracany kolor jest w postaci RGB.
Cytat
Drugie pytanie: jak przełożyć uzyskane składowe na wartość szesnastkową (do HTMLa)? Próbowałem na różne sposoby z funkcją dechex ale nie wychodziło z tego nic, co by przypominało taką wartość :-)
[php:1:6cbd11c2da]<?php
sprintf("#%02x%02x%02x", $r, $g, $

;
?>[/php:1:6cbd11c2da]
PS. Podziękowania dla uboottda za pomoc w rozgryzieniu problemu z
imagecolorat().