Как реализовать функцию копирования изображений (GD) с помощью Imagick?

Я работаю с imagick и столкнулся с некоторой проблемой. Я хочу скомпоновать два изображения: image01 и image02, image01 - это фоновое изображение, часть изображения image02, составного на image01. функция аналогична функции GD imagecopy.

bool imagecopy( resource dst_im, resource src_im, int dst_x, int dst_y, 
                int src_x, int src_y,int src_w, int src_h )

Скопируйте часть src_im в dst_im, начиная с координат x,y src_x, src_y с шириной src_w и высотой src_h. Определенная часть будет скопирована в координаты x,y, dst_x и dst_y.

вопрос: как реализовать функцию imagecopy с помощью Imagick?

Спасибо за вашу помощь.


person lizhi    schedule 23.12.2012    source источник


Ответы (2)


Это должно сделать это:

//load files from source
$background = new Imagick(image01_src);
$overlay = new Imagick(image02_src);

//Crop the overlay to the required size
$overlay->cropImage ($new_width,$new_height,$x_offset,$y_offset);

//composite overlay on background
$background->compositeImage($overlay, Imagick::COMPOSITE_OVER, $margin_x, $margin_y);

//save result
$background->setImageFormat("png");
$background->writeImage(new_src);

//clean up
$background->clear();
$background->destroy();
$overlay->clear();
$overlay->destroy();
person Lukas Nagel    schedule 31.12.2012

Используйте составной, например:

$large_image->compositeImage($small_image, Imagick::COMPOSITE_OVER, $margin_x, $margin_y);

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

person Lukas Nagel    schedule 23.12.2012