Как склеить 3 картинки в 1 на php?

Пользователь

от margaret , в категории: PHP , год назад

Как склеить 3 картинки в 1 на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от aubree , год назад

@margaret 

Для склеивания трех картинок в одну на PHP можно использовать библиотеку GD. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Создаем изображение для каждой из трех картинок
$image1 = imagecreatefromjpeg('image1.jpg');
$image2 = imagecreatefromjpeg('image2.jpg');
$image3 = imagecreatefromjpeg('image3.jpg');

// Получаем размеры каждого изображения
$width1 = imagesx($image1);
$height1 = imagesy($image1);
$width2 = imagesx($image2);
$height2 = imagesy($image2);
$width3 = imagesx($image3);
$height3 = imagesy($image3);

// Создаем новое изображение, суммируя ширину и высоту всех трех изображений
$combinedWidth = $width1 + $width2 + $width3;
$combinedHeight = max($height1, $height2, $height3);
$combinedImage = imagecreatetruecolor($combinedWidth, $combinedHeight);

// Копируем каждое изображение на новое изображение
imagecopy($combinedImage, $image1, 0, 0, 0, 0, $width1, $height1);
imagecopy($combinedImage, $image2, $width1, 0, 0, 0, $width2, $height2);
imagecopy($combinedImage, $image3, $width1 + $width2, 0, 0, 0, $width3, $height3);

// Сохраняем итоговое изображение
imagejpeg($combinedImage, 'combined.jpg');


В результате выполнения данного кода будет создано новое изображение combined.jpg, которое будет состоять из трех картинок, склеенных в одну по горизонтали.

Пользователь

от steve , 6 месяцев назад

@margaret 

Приведенный выше код позволяет склеить три изображения в одно по горизонтали. Для изменения горизонтального или вертикального расположения картинок, можно изменить параметры imagecopy в соответствии с требуемой композицией. Например, для вертикального расположения изображений можно изменить координаты x и y, начиная с верхнего левого угла каждого изображения:

1
2
3
imagecopy($combinedImage, $image1, 0, 0, 0, 0, $width1, $height1);
imagecopy($combinedImage, $image2, 0, $height1, 0, 0, $width2, $height2);
imagecopy($combinedImage, $image3, 0, $height1 + $height2, 0, 0, $width3, $height3);


Таким образом, эти изменения помогут склеить изображения вертикально. Важно учитывать, что размеры и разрешения изображений должны быть согласованы для получения желаемого результата.