如何通过 Imagick 实现 imagecopy (GD) 功能?
Posted
技术标签:
【中文标题】如何通过 Imagick 实现 imagecopy (GD) 功能?【英文标题】:How to implement imagecopy (GD) function by Imagick? 【发布时间】:2012-12-23 12:01:19 【问题描述】:我正在使用 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 )
从 x,y 坐标开始将 src_im 的一部分复制到 dst_im src_x, src_y,宽度为 src_w,高度为 src_h。该部分 定义将被复制到 x,y 坐标,dst_x 和 dst_y。
问题是:Imagick如何实现imagecopy功能?
感谢您的帮助。
【问题讨论】:
【参考方案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();
【讨论】:
【参考方案2】:使用composite,例如:
$large_image->compositeImage($small_image, Imagick::COMPOSITE_OVER, $margin_x, $margin_y);
如果你给我源图片和最终图片,我可以给你确切的代码。
【讨论】:
以上是关于如何通过 Imagick 实现 imagecopy (GD) 功能?的主要内容,如果未能解决你的问题,请参考以下文章