我正在与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功能?
感谢您的帮助。
答案 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);
如果您向我展示来源和最终图片,我可以为您提供确切的代码。