Как на 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);
→ Ссылка