Intereting Posts
Кнопка «Радио» снимите флажок при повторном нажатии Как включить файлы PHP, требующие абсолютного пути? Zend_Cache: после загрузки кэшированных данных кодировка символов кажется испорченной Как передать выбранное значение в модальном поле PHP? В приложении Laravel mysql import преобразует значения timestamp null в 0000-00-00 00:00:00 Можно ли защитить весь контроллер в Symfony 2? XAMPP: настройка типа кодирования во всем мире Как извлечь подстроку из строки в PHP до тех пор, пока она не достигнет определенного символа? Самый быстрый способ чтения метаданных PNG в PHP Сортировка коллекции по индивидуальному заказу в Eloquent Можно ли отключить переменную сеанса с определенным и переменным индексом? как обновить данные строки таблицы с помощью уникального идентификатора? php fopen возвращает false, но файл доступен для чтения / записи Как отображать обычную цену и цену продажи на страницах одного продукта и цикла? Проблема PHP $ _SESSION

PHP – создание одного изображения из изображений

У меня есть n-изображения и вы хотите создать их с помощью php-кода. Я использую imagecopymerge (), но не могу это сделать. Например, пример?

Solutions Collecting From Web of "PHP – создание одного изображения из изображений"

Код:

$numberOfImages = 3; $x = 940; $y = 420; $background = imagecreatetruecolor($x, $y*3); $firstUrl = '/images/upload/photoalbum/photo/1.jpg'; $secondUrl = '/images/upload/photoalbum/photo/2.jpg'; $thirdUrl = '/images/upload/photoalbum/photo/3.jpg'; $outputImage = $background; $first = imagecreatefromjpeg($firstUrl); $second = imagecreatefromjpeg($secondUrl); $third = imagecreatefromjpeg($thirdUrl); imagecopymerge($outputImage,$first,0,0,0,0, $x, $y,100); imagecopymerge($outputImage,$second,0,$y,0,0, $x, $y,100); imagecopymerge($outputImage,$third,0,$y*2,0,0, $x, $y,100); imagejpeg($outputImage, APPLICATION_PATH .'/images/upload/photoalbum/photo/test.jpg'); imagedestroy($outputImage); 

Спасибо kruksmail,

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

Он также дает возможность указать, сколько строк или столбцов вы хотите. Я также добавил несколько комментариев.

 $images = array('/images/upload/photoalbum/photo/1.jpg','/images/upload/photoalbum/photo/2.jpg','/images/upload/photoalbum/photo/3.jpg'); $number_of_images = count($images); $priority = "columns"; // also "rows" if($priority == "rows"){ $rows = 3; $columns = $number_of_images/$rows; $columns = (int) $columns; // typecast to int. and makes sure grid is even }else if($priority == "columns"){ $columns = 3; $rows = $number_of_images/$columns; $rows = (int) $rows; // typecast to int. and makes sure grid is even } $width = 150; // image width $height = 150; // image height $background = imagecreatetruecolor(($width*$columns), ($height*$rows)); // setting canvas size $output_image = $background; // Creating image objects $image_objects = array(); for($i = 0; $i < ($rows * $columns); $i++){ $image_objects[$i] = imagecreatefromjpeg($images[$i]); } // Merge Images $step = 0; for($x = 0; $x < $columns; $x++){ for($y = 0; $y < $rows; $y++){ imagecopymerge($output_image, $image_objects[$step], ($width * $x), ($height * $y), 0, 0, $width, $height, 100); $step++; // steps through the $image_objects array } } imagejpeg($output_image, 'test.jpg'); imagedestroy($output_image); print "<div><img src='test.jpg' /></div>";