Страницы

четверг, 30 мая 2013 г.

php imagecolorat Всегда возвращает черный цвет

Если imagecolorat возвращает всегда 0, или какие то другие не корректные значения, надо вместо побитового сдвига использовать функцию imagecolorsforindex



Не правильно:

$imgObject = imagecreatefrompng('our.png');
$fillColor = imagecolorat($imgObject, 0, 0);

 $rgba = array(
    ($fillColor >> 16) & 0xFF,
    ($fillColor >> 8) & 0xFF,
     $fillColor & 0xFF,
    ($fillColor >> 24) & 0xFF
);




Правильно:

$imgObject = imagecreatefrompng('our.png');
$fillColor = imagecolorat($imgObject, 0, 0);
$colors = imagecolorsforindex($imgObject, $fillColor);

$rgba  = array(
   $colors['red'],
   $colors['green'],
   $colors['blue'],
    $colors['alpha']
);

Комментариев нет:

Отправить комментарий