Я застрял, и мне нужна помощь от вас, ребята.
Я хочу иметь возможность масштабировать и центрировать по центру (по горизонтали и вертикали) любое загруженное изображение на фоне.
У меня нет проблем с преобразованием загруженного изображения пользователем в фоновый режим. Я застреваю только тогда, когда пытаюсь выровнять его по середине фона.
![enter image description here](https://i.stack.imgur.com/cYrFe.png)
![enter image description here](https://i.stack.imgur.com/SOdgD.png)
This is what I am doing:
// GET IMAGES
$canvas = 'canvas.png';
$uploaded_image = 'uploaded_image.png';
// GET BACKGROUND SIZE
$background = imagecreatefromstring(file_get_contents($canvas));
$background_width = imagesx($background);
$background_height = imagesy($background);
$msg_background_size = "Background size: $background_width x $background_height";
// GET IMAGE SIZE
$image = imagecreatefromstring(file_get_contents($uploaded_image));
$image_width = imagesx($image);
$image_height = imagesy($image);
$msg_image_size = "Image size: $image_width x $image_height";
// SCALE IMAGE TO FIT AT CENTER OF BACKGROUND
$new_image_width = $background_width / 1.25;
$scale = $image_width / $new_image_width;
$new_image_height = $image_height / $scale;
echo "New Image Width: $new_image_width";
echo "scale: $scale";
echo "New Image height: $new_image_height";
imagecopyresampled($background, $image, $background_width/10, $background_height/10, 0, 0, $new_image_width, $new_image_height, $image_width, $image_height);
// Save New Image
imagepng($background,'./new_image.png');
Here is the end result:
It only works great if the uploaded image is square. If the uploaded image is not square (ex: 500px x 500px) it will not be aligned at the middle properly.
->> Squared Images --> Success
введите описание изображения здесь
- >> Изображения прямоугольника - -> Не удалось введите описание изображения здесь
Я был бы очень благодарен, если бы кто-нибудь мог мне помочь. Я знаю, что это поможет многим другим.