ЯзыкиPHP
PNG и альфаканал
Если при работе с PNG теряется прозрачный фон, становится черным, необходимо включить альфа канал. Делается это вот так:
if (function_exists('imagealphablending')) {
// Отключаем режим сопряжения цветов
imagealphablending($newImage, false);
// Включаем сохранение альфа канала
imagesavealpha($newImage, true);
}
Полный код выходит таким:
// Создаем полноцветное изображение
$newImage =imagecreatetruecolor($newWidth, $newHeight);
if (function_exists('imagealphablending')) {
// Отключаем режим сопряжения цветов
imagealphablending($newImage, false);
// Включаем сохранение альфа канала
imagesavealpha($newImage, true);
}
// Ресайз
imagecopyresampled($newImage, $oldImage, 0, 0, 0, 0, $newWidth, $newHeight, $oldWidth, $oldHeight);
// Сохранение
imagepng($newImage, $newImagePath);