Объединить две картинки средствами PHP

99
10 сентября 2021, 03:00

Загружаемую на сервер картинку необходимо подвергнуть следующей обработке: 1. Удалить белый/прозрачный фон; 2. Вместить в белый квадрат размером 42х42, при этом центрировать внутри квадрата по вертикали и горизонтали. Слепил из того что было:

if (exif_imagetype($product_picture_path) == IMAGETYPE_PNG) {
            $image = imagecreatefrompng($product_picture_path);
            $cropped_image = imagecropauto($image, IMG_CROP_WHITE);
            $cropped_image = imagecropauto($cropped_image, IMG_CROP_TRANSPARENT);
            $bg = imagecreatetruecolor(42, 42);
            imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
            imagealphablending($bg, TRUE);
            imagecopyresampled($bg, $cropped_image, (imagesx($bg) - imagesx($cropped_image))/2, 0, 0, 0, 42, 42, imagesx($cropped_image), imagesy($cropped_image));
            imagedestroy($image);
            $quality = 100;
            imagejpeg($bg, $product_picture_path, $quality);
            imagedestroy($bg);
        }

$cropped_image растягивается на всю ширину $bg, нам же нужно, чтобы оно меняло размеры пропорционально. Как объединить с центрированием правильно?

Answer 1

Получить координаты ХУ очень просто: Ш1 : ширина большой фотографии, Ш2 - ширина маленькой фотографии. Формула: х = (Ш1 - Ш2) / 2.

Пример: Ш1 = 10, Ш2 = 2 (10 - 2) / 2 = 4 (это координата Х)

Координата У читается аналогично.

READ ALSO
Не загружается песня на сайт php

Не загружается песня на сайт php

Не загружаются аудио файлы, с картинками все работает tmp_name пустой ""

73
Как должна выглядеть служба на смартфоне, чтобы принимать push уведомления с сервера без использования Firebase?

Как должна выглядеть служба на смартфоне, чтобы принимать push уведомления с сервера без использования Firebase?

Надо создать приложение (под Android), которое бы принимало push уведомления с моего сервера (на php)Приложения на разных устройствах соответственно...

179
Запись символов вместо чисел в файл Java

Запись символов вместо чисел в файл Java

Программа смотрит в файл inputtxt считывает три числа и высчитывает по формуле четвертое число

202