Ресайз прозрачных картинок на PHP | Все что вы хотели знать о хостинге и сайтостроении

Ресайз прозрачных картинок на PHP


Рубрика: PHP

Для того что-бы при ресайзе картинки в формате PNG в PHP фон не становился черным необходимо в верном порядке указать правила для создания слоя на котором будет находится наша картинка.

Прозрачность в PNG это альфа канал, а при создании новой картинки в PHP многие забывают этот альфа канал обозначить и по этому фон заливается в черный цвет и на него накладывается измененная картинка.

Вот правильные действия при ресайзе картинки на PHP с помощью библиотеки GD:

//Создаем полноцветное изображение
$destination_resource = imagecreatetruecolor($new_width, $new_height);

//Отключаем режим сопряжения цветов
imagealphablending($destination_resource, false);

//Включаем сохранение альфа канала
imagesavealpha($destination_resource, true);

//Ресайз
imagecopyresampled($destination_resource, $source_resource, 0, 0, 0, 0, $new_width, $new_height, $old_width, $old_height);

//Сохранение
imagepng($destination_resource, $destination_path);

 

 

Если вам понравилась статья или была полезна, поделитесь ею с друзьями: