?

Log in

No account? Create an account
PHP Developer's Journal -- Day [entries|friends|calendar]
PHP Developer

[ website | PHP.NET ]
[ userinfo | livejournal userinfo ]
[ calendar | livejournal calendar ]

Изменения цвета в картинке [28 Jul 2012|05:54pm]
Друзья, добрый день. Помогите с элементарной такой штукой.
Хочется в картинке, весь чёрный цвет изменить на заданный, например - красный.
Что делаю - сканирую всю картинку, в поисках чёрного цвета, если нахожу - заменяю пиксель.
Выглядит это примерно так, исходная картинка:



<?
$im        = imagecreatefrompng('img.png');
$im_x    = 249;
$im_y    = 59;

for ($x = 0; $x <= $im_x; $x++){
    for ($y = 0; $y <= $im_y; $y++){
            $rgb = imagecolorat($im, $x, $y);
            $colors = imagecolorsforindex($im, $rgb);
            
            if ( $colors['red'] == 0 && $colors['blue'] == 0 && $colors['green'] == 0 ){
                $color = imageColorAllocate($im, 255, 0, 0);
                imageSetPixel($im, $x, $y, $color);
            }
    }
}

Header("Content-type: image/png");
imagepng($im);
?>

На выходе получается такое:


Также, если убрать условие ( if ( $colors['red'] == 0 && $colors['blue'] == 0 && $colors['green'] == 0 ){ ), то в теории просто вся область изображения, должна стать красной, но почему-то получается так:


P.S. Необходимо использовать именно цикл попиксельного сканирования изображения.
4 comments|post comment

navigation
[ viewing | July 28th, 2012 ]
[ go | previous day|next day ]