Я использую imagemagick для обрезки изображения (используя интерфейс PHP, но я не думаю, что это слишком важно).ImageMagick crop с окружающим фоном
Я хочу обрезать изображение, но если часть обрезки проходит по изображению, я хочу, чтобы он отображал цвет фона.
Вот код, который я до сих пор:
$newImg = new Imagick($imgUrl);
$newImg->cropImage($cropW, $cropH, $x, $y);
$newImg->resizeImage($resizedW, $resizedH, Imagick::FILTER_CATROM, 1);
$newImg->writeImage($output_filename);
Однако по какой-то причине, ImageMagick отказывается показать любую часть изображения, которая находится дальше, чем границы изображения (то есть, если х и у больше чем исходная ширина и высота изображения, то она выводит его на экран).
например.
Я хочу, чтобы это так, что если х и у находится за пределами участка изображения, он показывает цвет фона вместо этого. Благодаря!
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);
UPDATE 2
Похоже, вы должны использовать extentImage (НЕ setImageExtent), если вы хотите использовать цвет фона.
Почему downvote? Я думал, что это был хорошо сформулированный вопрос, который не повторялся до –