2015-02-18 3 views
3

Я пытаюсь сделать монтаж с помощью imagemagick. Я работаю частично. Я хочу сделать монтаж 2 столбца на 2 строки. С 5px отступов между изображениями, на белом фоне. Когда я использую следующий код, результирующее изображение в два раза выше и вдвое шире одного изображения, хотя только первое из четырех изображений появляется в правильном размере и месте, а белый - в остальных трех местах. Все изображения имеют одинаковые размеры и одинаковый тип файла.Использование imagemagick монтажа с PHP

<?php 
header('Content-type: image/jpeg'); 
$loc1 = 'http://localhost:8888/gallery_edited/0116.jpg'; 
$loc2 = 'http://localhost:8888/gallery_edited/0115.jpg'; 
$loc3 = 'http://localhost:8888/gallery_edited/0114.jpg'; 
$loc4 = 'http://localhost:8888/gallery_edited/0113.jpg'; 
$image = new Imagick("$loc1 $loc2 $loc3 $loc4"); 
$image -> setFormat("jpg"); 
$image = $image -> montageImage(new ImagickDraw, '2x2', '600x400', 0, '0'); 
echo $image; 

enter image description here

ответ

7

Используйте Imagick::addImage для создания стека изображений с новыми экземплярами объекта Imagick.

<?php 

$sources = array(
    'red.png', 
    'green.png', 
    'blue.png', 
    'orange.png' 
); 

$stack = new Imagick(); 
foreach($sources as $source) { 
    $stack->addImage(new Imagick($source)); 
} 

$montage = $stack->montageImage(new ImagickDraw(), '2x2', '500x300', 0, '0'); 
$montage->writeImage('out.png'); 

montage with php example

+0

Спасибо большое, я думал, что не должны использовать все источники. – user1881482

Смежные вопросы