Forum Webscript.Ru
Программирование => PHP => Тема начата: AlieN от 07 Июля 2006, 14:24:54
-
Есть картинка, на которую надо воткнуть логотип, который частями прозрачен.
Логотип:
(PNG 24-бита) http://people3000.ru/i/logos/logo_blue_24_photoshop.png
(PNG 8-бит) http://people3000.ru/i/logos/logo_blue_8_photoshop.png
Исходная картинка:
http://up.li.ru/?id=196525;%D4%EE%F2%EE014.jpg
Сурс:
$logo = ImageCreateFromPNG("blue.png");
$a1= GetImageSize("blue.png");
$fr = ImageCreateFromJPEG($file_from);
$f=ImageCreateTrueColor(imagesx($fr),imagesy($fr));
ImageCopy($f,$fr,0,0,0,0,imagesx($fr),imagesy($fr));
ImageDestroy($fr);
$a2 = GetImageSize($file_from);
ImageCopy($f, $logo, 0, 0, 0, 0, $a1[0], $a1[1]);
ImageJPEG($f,$file_to,70);
Что получаем:
Логотип PNG8 - http://up.li.ru/?id=196527;result_png_8.jpg
Логотип PNG24 - http://up.li.ru/?id=196528;result_png_24.jpg
Есть идеи как исправить ?
-
т.е. результат при наложении PNG24 практически идеален, только там есть маленькие неровности, вот как бы их исправить?
-
thx to metaller
попробуй сохранять жпег с качеством 90 и выше. иначе ГД сильно поганит всё.
Работоспобочный вариант:
$logo = ImageCreateFromPNG("blue.png");
$a1= GetImageSize("blue.png");
$fr = ImageCreateFromJPEG($file_from);
$f=ImageCreateTrueColor(imagesx($fr),imagesy($fr
));
ImageCopy($f,$fr,0,0,0,0,imagesx($fr),imagesy($f
r));
ImageDestroy($fr);
$a2 = GetImageSize($file_from);
ImageCopy($f, $logo, 0, 0, 0, 0, $a1[0], $a1[1]);
ImageJPEG($f,$file_to,90);