如何通过Imagick实现imagecopy(GD)功能?

时间:2012-12-23 12:01:20

标签: php imagemagick gd imagick

我正在与imagick合作并面临一些问题。我想合成两个图像:image01和image02,image01是背景图像,image01上的image02复合的一部分。这个函数就像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 )
  

从x,y坐标开始,将src_im的一部分复制到dst_im上   src_x,src_y,宽度为src_w,高度为src_h。部分   define将被复制到x,y坐标,dst_x和dst_y。

问题是:如何通过Imagick实现imagecopy功能?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这应该这样做:

//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();

答案 1 :(得分:0)

使用composite,例如:

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

如果您向我展示来源和最终图片,我可以为您提供确切的代码。