Сливаются цвета при использовании imagecopy

punchos

Новичок
Сливаются цвета при использовании imagecopy

В упрощенном варианте написал вот такой вот скрипт для формирование информеров.
<?php

$hImage = imagecreatefrompng('http://www.zipsoft.ru/images/informer/informer8831c_w_blank.png');
$hImageNumber = imagecreatefromgif('http://www.zipsoft.ru/images/informer/zi_d4.gif');
imagecopy( $hImage,$hImageNumber, 15, 20, 0, 0, 4, 6);
imagecopy($hImage, $hImageNumber, 20, 20, 0, 0, 4, 6);
imagecopy($hImage, $hImageNumber, 25, 20, 0, 0, 4, 6);
imagecopy($hImage, $hImageNumber, 30, 20, 0, 0, 4, 6);

header('Content-type: image/png');
imagepng($hImage);
?>

Но почему то цвет цифр становится зеленым, хотя в картинке zi_d4.gif они черного цвет. Почему так может быть и как это исправить?
 

Фанат

oncle terrible
Команда форума
ты прямо так и пишешь - http://www.zipsoft.ru/images/informer/informer8831c_w_blank.png?
у тебя заготовки не на своем сайте лежат, что ли?

а цвета разные потому, что палитры разные.
 

FreeSpace

Чукча-читатель
У тебя картинка с бекграундом в PNG-8, а он использует палитру. В палитре нет черного цвета, поэтому получается неточное преобразование.

Вариантов два: либо сконвертировать исходное изображение в PNG-24, либо создать новое изображение при помощи [m]imagecreatetruecolor[/m], скопировать в него бекграунд и дальше с ним работать. Пример можешь посмотреть во втором сверху комменте к [m]imagecreatefrompng[/m] - там ситуация чуть другая, но решение тебе подойдет.
 

punchos

Новичок
Автор оригинала: *****
ты прямо так и пишешь - http://www.zipsoft.ru/images/informer/informer8831c_w_blank.png?
у тебя заготовки не на своем сайте лежат, что ли?

а цвета разные потому, что палитры разные.
Конечно нет. Просто для примера дал ссылки, которые в online выложены

-~{}~ 10.09.07 14:12:

Автор оригинала: FreeSpace
У тебя картинка с бекграундом в PNG-8, а он использует палитру. В палитре нет черного цвета, поэтому получается неточное преобразование.

Вариантов два: либо сконвертировать исходное изображение в PNG-24, либо создать новое изображение при помощи [m]imagecreatetruecolor[/m], скопировать в него бекграунд и дальше с ним работать. Пример можешь посмотреть во втором сверху комменте к [m]imagecreatefrompng[/m] - там ситуация чуть другая, но решение тебе подойдет.
Спасибо за помощь. Разобрался, теперь все заработало.
 
Сверху