проблема с качеством накладываемой картинки

VaxCavalera

Новичок
проблема с качеством накладываемой картинки

Здравствуйте,

Возникла следующая проблема:

1) Создается картинка

PHP:
$dst=imagecreatetruecolor($CanvasX+100, $CanvasY);
	ImageTrueColorToPalette( $dst, true, 256 );
	$transCol=imagecolorallocate($dst, 0,0,0);
	imagefill($dst,1,1,$transCol);
	$trcolor=imagecolortransparent($dst, $transCol);
2) в нее копируется кусок с линейкой и бегунком ( загружаются с сервера с помощью imagecreatefrompng ). При наложении
используется imagecopymerge

3) берем картинку imagecreatefromjpeg И накладываем на dst с помощью imagecopymerge

4) получаем следующий гиф с прозрачным фоном.
http://www.galya.ru/line1_test.php?id=1874

5) первоначальный гиф http://img.galya.ru/galya.ru/Pictures/catalog_diary/2006/07/10/t_92636.jpg

Вопрос: Как улучшить качество картинки? Как сделать конечную картинку imagecreatetruecolor да и еще с прозрачным фоном.

Извините за глупый вопрос.
И спасибо за скорый ответ
 

VaxCavalera

Новичок
проблема тут в том, что не получается сделать прозрачность в imagecreatetruecolor ну не получается и всё тут.
 

ksnk

прохожий
Попробуй так
PHP:
$dst=imagecreatetruecolor($CanvasX+100, $CanvasY);
, затем пункты 2,3, а вот затем
PHP:
    ImageTrueColorToPalette( $dst, true, 256 ); 
    $transCol=imagecolorat($dst,0,0);//   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    $trcolor=imagecolortransparent($dst, $transCol);
 

VaxCavalera

Новичок
Автор оригинала: ksnk
Попробуй так
PHP:
$dst=imagecreatetruecolor($CanvasX+100, $CanvasY);
, затем пункты 2,3, а вот затем
PHP:
    ImageTrueColorToPalette( $dst, true, 256 ); 
    $transCol=imagecolorat($dst,0,0);//   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    $trcolor=imagecolortransparent($dst, $transCol);
Проблема в том, что когда делается
PHP:
 ImageTrueColorToPalette( $dst, true, 256 );
теряется качество картинки сразу же.

То есть насколько я понимаю проблема в том, что нужно научиться делать truecolor gif картинку с прозрачностью.

Как?
 

ksnk

прохожий
Вы, насколько я понял, пробовали сделать как я написал? В смысле - ImageTrueColorToPalette - ПОСЛЕ всех операций с накладыванием изображения?
 

ksnk

прохожий
А почему тогда к меня вот так получилось?
PHP:
$CanvasX=422;$CanvasY=96;
$dst=imagecreatetruecolor($CanvasX+100, $CanvasY);
//2
$src=imagecreatefromgif('line1_test.gif');
imagecopymerge($dst,$src,0,0,0,0,imagesx($src),imagesy($src),100);
//3
$src=imagecreatefromjpeg('t_92636.jpg');
imagecopymerge($dst,$src,$CanvasX,0,0,0,imagesx($src),imagesy($src),100);
//, затем пункты 2,3, а вот затем
ImageTrueColorToPalette( $dst, true, 256 );
    $transCol=imagecolorat($dst,0,0);//   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    $trcolor=imagecolortransparent($dst, $transCol);
imagegif($dst,'test.gif');
Исходные картинки тупо скопированы из ссылок первого поста... [m]imagecopymerge[/m] - использовать действительно необходимо? Может проще [m]imagecopy[/m]
 

VaxCavalera

Новичок
ехарный бабай получилось...

но одна проблема появилась пиксели черного цвета на наложенной картинке становятся прозрачными

вот пример

http://www.galya.ru/line_test.html

-~{}~ 13.07.06 13:14:

и еще один вопрос вообще реально вправо запихнуть гиф с анимацией? и как это сделать

-~{}~ 13.07.06 13:15:

Спасибо за Ваши ответы и помощь!
 

ksnk

прохожий
VaxCavalera
но одна проблема появилась пиксели черного цвета на наложенной картинке становятся прозрачными
А что тут удивительного? Используйте как прозрачный на первой картинке другой цвет, не черный.
Или можно пробежаться в цикле по области, занятой правым изображением и поменять "прозрачный" цвет на другой. Для этого может понадобится вызывать ImageTrueColorToPalette не с 256 цветами, а с 255, затем добавить дополнительный черный цвет в палитру и перекрасить новым цветом нужные пиксели...
и еще один вопрос вообще реально вправо запихнуть гиф с анимацией? и как это сделать
имхо - с помощью GD нереально... Средства для работы с анимироваными Гифами - в поиск по этому форуму...

-~{}~ 13.07.06 15:48:

а средствами HTML такое наложение делать нельзя? Типа - Div с бакграундом - первое изображение и плавающий div прижатый вправо - со вторым...
 

VaxCavalera

Новичок
да щас так и сделано с помощью HTML. Но сам смысл хотелось бы просто, чтобы это виделось на других сайтах как картинка.

Ок Спасибо большое за помощь. Буду ковырять и пробовать.

Спасибо за помощь ksnk!
 
Сверху