Как на PHP дополнить изображение дор квадрата прозрачностью
Нужно дополнить изображение прозрачностью до квадрата. например имеем изображение 150 на 100, нужно сделать его 150 на 150 и то место которое дополнилось сделать прозрачным. Если изображение 100 на 347 то сделать его 347 на 347 и то место которое было добавлено, сделать прозрачным и перезаписать всё в png. даже идей нет как такое реализовать, в интернете не нашёл. Спасибо
Ответы (1 шт):
Автор решения: Alpha
→ Ссылка
Вот это должно вам помочь, добавил комментарии к коду, так что думаю что разберётесь. Пути для файлов укажите свои.
// Достаем ширину и высоту входного изображения
$original_info = getimagesize('old.png');
$original_w = $original_info[0];
$original_h = $original_info[1];
// создаем новое изображение
$pngImage = imagecreatefrompng('test.png');
// создаем временное изображение квадрат из ширины вашего изображения
$thumb_img = imagecreatetruecolor($original_w, $original_w);
// задаем белый цвет
$whiteBackground = imagecolorallocate($thumb_img, 255, 255, 255);
// заполняем изображение белым цветом
imagefill($thumb_img,0,0,$whiteBackground);
// вставляем наше изображение в ново созданное
imagecopyresampled($thumb_img, $pngImage,
0, 0,
0, 0,
$original_w, $original_h,
$original_w, $original_h);
// и сохраняем изображение
imagepng($thumb_img, 'new.png');
imagedestroy($thumb_img);
imagedestroy($pngImage);