我使用imagemagick裁剪图像(使用PHP界面,但我不认为这太重要)。ImageMagick裁剪图像与周围的背景
我希望裁剪图像,但如果裁剪部分超过图像,我希望它显示背景颜色。
下面是代码我迄今为止:
$newImg = new Imagick($imgUrl);
$newImg->cropImage($cropW, $cropH, $x, $y);
$newImg->resizeImage($resizedW, $resizedH, Imagick::FILTER_CATROM, 1);
$newImg->writeImage($output_filename);
但是由于某些原因,ImageMagick的拒绝显示比所述图像的边界进一步的图像的任何部分(即,如果x和y是较大比原始图像的宽度和高度,它将其压入图像的视图)。
例如
我希望它使得如果x和y是超出图像部分,它显示了一个背景颜色来代替。谢谢!
UPDATE
感谢namelivia建议,我决定使用“范围” tool.However我无法设置使用PHP通过这个工具的背景颜色。例如,以下内容会生成较大的图像,但具有黑色背景,而不是紫色。
$newImg = new Imagick($imgUrl);
$newImg->setImageBackgroundColor('#e7609a'); //Doesn't return an error (i.e. returns true) but also does not work!
$newImg->setImageExtent(2000, 2000);
$newImg->writeImage($output_filename);
更新2
好像如果你希望使用的背景颜色,你应该使用extentImage(NOT setImageExtent)。
为什么downvote?我认为这是一个措辞很好的问题,在 – 2015-03-31 19:54:05