А вот GIF-е прозрачность реализована по-другому. В нем один из используемых цветов (любой, на выбор автора картинки) объявляется как прозрачный, и при отрисовке данной картинки пиксели имеющие данный цвет заменяются прозрачными пикселями.
Ресайзим PNG
<?php
// Путь и имя изображения
$src = '/imgs/izobrazhenie.png';
$source_resource = imagecreatefrompng($src);
//Создаем полноцветное изображение
$destination_resource = imagecreatetruecolor($newwidth, $newheight);
//Отключаем режим сопряжения цветов
imagealphablending($destination_resource, false);
//Включаем сохранение альфа канала
imagesavealpha($destination_resource, true);
//Ресайз
imagecopyresampled($destination_resource, $source_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);
//Сохранение
imagepng($destination_resource, $destination_path);
?>
Ресайзим GIF
<?php
// Путь и имя изображения
$src = '/imgs/izobrazhenie.gif';
$source_resource = imagecreatefromgif($src);
//Создаем изображение, кстати для GIF можно использовать обычную imagecreate, но лучше все таки везде использовать imagecreatetruecolor
$destination_resource = imagecreatetruecolor($newwidth, $newheight);
//Получаем прозрачный цвет
$transparent_source_index = imagecolortransparent($source_resource);
//Проверяем наличие прозрачности
if($transparent_source_index != -1){
$transparent_color = imagecolorsforindex($source_resource, $transparent_source_index);
//Добавляем цвет в палитру нового изображения, и устанавливаем его как прозрачный
$transparent_destination_index = imagecolorallocate($destination_resource, $transparent_color['red'], $transparent_color['green'], $transparent_color['blue']);
imagecolortransparent($destination_resource, $transparent_destination_index);
//На всякий случай заливаем фон этим цветом
imagefill($destination_resource, 0, 0, $transparent_destination_index);
}
//Ресайз
imagecopyresampled($destination_resource, $source_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);
//Сохранение
imagegif($destination_resource, $destination_path);
?>