maxy666
Профессор
- Регистрация
- 23 Июл 2012
- Сообщения
- 143
- Реакции
- 44
- Автор темы
- #1
Помогите пожалуйста в следующем:
Существует задача перекрасить ( осветлить или затемнить пиксели картинки), которые не попадают в диапазон rpg .
Посоветуйте пожалуйста может есть какие то функции для этого, или посмотрите что не так в данном коде, возникает проблема записать изменений пик сель на картинку
Существует задача перекрасить ( осветлить или затемнить пиксели картинки), которые не попадают в диапазон rpg .
Посоветуйте пожалуйста может есть какие то функции для этого, или посмотрите что не так в данном коде, возникает проблема записать изменений пик сель на картинку
Код:
/ / Обрабатываем пиксели которые сильно отличаться от нужных значений
/ / Выбираем из базы значение по которым будут равняться пиксели
$image_r = $row['r'];
$image_g = $row['g'];
$image_b= $row['b'];
$image_obob = $row['url_image'];
// Узнаем размер изображение
$rozmi_y = imagesy($image_obob);
$rozmir_x = imagesx($image_obob);
// Делаем проверку в цикле каждого пикселя
for( $h = 0; $h <= $rozmir_y; $h ++ ){
for( $w = 0; $w <= $rozmir_x; $w ++ )
{
// Узнаем цвет пикселя в координатах $w, $h
$color = imagecolorat( $image_obob, $w, $h );
$r = ($color >> 16) & 0xFF;
$g = ($color >> 8) & 0xFF;
$b = $color & 0xFF;
$x = $w;
$y = $h;
// Заносим изначальные значение цвета пикселя
$iznach_r = $r;
$iznach_g = $g;
$iznach_b = $b;
// Проверяем red цвет
if ($r < "$image_r - 50")
{$r = "$r+50";}
elseif ($r < "$image_r + 50")
{$r = "$r-50";}
echo $r;
// Проверяем green цвет
if ($g < "$image_g - 50")
{$g = "$g+50";}
elseif ($g < "$image_g + 50")
{$g = "$g-50";}
// Проверяем blue цвет
if ($b < "$image_b - 50")
{$b = "$b+50";}
elseif ($b < "$image_b + 50")
{$b = "$b-50";}
// Проверяем нужно ли делать перекрашивание пикселя
if ($iznach_r <> $r OR $iznach_g <> $g OR $iznach_b <> $b)
{
// Записываем значение в пиксель
$image_obob =imagecreatefromjpeg($image_obob);
$picsl_color = imagecolorallocate ($image_obob, $r, $g ,$b );
imagesetpixel ($image_obob , $rozmir_x , $rozmir_y , $picsl_color);
}
}}