Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Пропадает прозрачность
 
 автор: Kaje   (26.04.2012 в 14:51)   письмо автору
 
 

Переворачиваю изображение (png) при помощи imagerotate и налаживаю на него сверху другое изображение без поворотов. Вот пример http://pickboom.ru/kot/ . Иногда работает как полагается а иногда, когда изображение поворачивается на 0, 45, 135, 225, 315 градусов с верхнего изображения пропадает прозрачность.
Подскажите в чем может быть беда?


//создаем произвольное изображение 
$im = imagecreatetruecolor(300,300); 
//заливаем произвольным цветом 
$col = imagecolorallocate($im, 125, 178, 240); 
imagefill($im, 0, 0, $col); 
$img1 = imagecreatefrompng("cat.png");
$imass = rand(0,6);
//реализуем массив размерностью 8 значением 45 градусов
$rand = array(45, 90, 135, 180, 225, 270, 315);

$rotate = imagerotate($img1, $rand[$imass], imagecolorat($img1,0,0));

//прозрачность доля фонового изображения
imagesavealpha($rotate,true);    // ключевая функция для прозрачности
imagefill($rotate ,0,0,IMG_COLOR_TRANSPARENT);
//создаем прозрачное изображение 
$ims = imagecreatetruecolor(300,300); 
//цвет заливки прозрачный 
$black = imagecolorallocate($im, 0, 0, 0); 
imagecolortransparent($ims, $black); 
imagefill($ims, 0, 0, $black); 
//накладываем прозрачное изображение на первое 
imagecopymerge($im, $ims, 0, 0, 0, 0, 300, 300, 100); 



//прозрачность для внутреннего изображения

$img2=imageCreateFromPNG("cat2.png");

$im2 = imagecreatetruecolor(300,300); 
imagesavealpha($img2,true);    // ключевая функция для прозрачности
imagefill($img2 ,0,0,IMG_COLOR_TRANSPARENT);
//создаем прозрачное изображение 
$ims2 = imagecreatetruecolor(300,300); 
//цвет заливки прозрачный 
$black = imagecolorallocate($im2, 0, 0, 0); 
imagecolortransparent($ims2, $black); 
imagefill($ims2, 0, 0, $black); 
//накладываем прозрачное изображение на первое 
imagecopymerge($im2, $ims2, 0, 0, 0, 0, 300, 300, 100); 


// Определяем размеры
$size_x=imageSX($rotate);
$size_y=imageSY($rotate);

// Копируем рисунок целиком из первого изображения во второе
imageCopy($rotate,$img2,0,0,0,0,$size_x,$size_y);

  Ответить  
 
 автор: confirm   (26.04.2012 в 15:34)   письмо автору
 
   для: Kaje   (26.04.2012 в 14:51)
 

http://www.sql.ru/forum/actualthread.aspx?tid=675954 - полезно и по теме, и вообще о GD.

  Ответить  
 
 автор: Kaje   (26.04.2012 в 17:00)   письмо автору
 
   для: confirm   (26.04.2012 в 15:34)
 

не помогло. Есть еще предложения или догадки?

  Ответить  
 
 автор: confirm   (26.04.2012 в 22:04)   письмо автору
 
   для: Kaje   (26.04.2012 в 17:00)
 

Печально. Обычно помогает.
Что из себя представляют ваши картинки?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования