我使用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