Ответ 1
Похоже, что нет поддержки, вот как я это сделал: https://gist.github.com/1364489
Я ищу цвет и изображение центра, используя Imagick PHP apis (а не версию командной строки Imagick).
По сути, я хочу делать то, что возможно через командную строку, используя API. Вот пример из командной строки: http://www.imagemagick.org/Usage/crop/#crop_gravity
Вот что я делаю (не работает). Он всегда обрабатывает верхний левый угол источника:
$this->imagickObj->setGravity(\Imagick::GRAVITY_CENTER);
$this->imagickObj->cropImage(300,250,0,0);
$this->imagickObj->setImagePage(0, 0, 0, 0);
Почему setGravity не применяется к изображению перед урожаем? http://www.php.net/manual/en/function.imagick-setgravity.php говорит, что он должен применяться к объекту (в данном случае единственное изображение)...
Похоже, что нет поддержки, вот как я это сделал: https://gist.github.com/1364489
Слишком поздно для оригинального человека, который задал вопрос, но для будущих посетителей, правильное решение
bool Imagick:: cropThumbnailImage (int $width, int $height)
Извините за поздний ответ, но я тоже застрял здесь всего 30 минут назад, и первый результат google перенаправил меня сюда. Надежда же не будет с другими.
Метод Imagemagick object cropImage()
Третий и четвертый аргументы определяют верхний левый угол урожая. Либо попробуйте передать их как null
(и используйте метод setGravity()
), либо вам действительно нужно будет вычислить, где должна быть урожай, и поместить эти числа в метод cropImage()
(и не беспокоить setGravity()
).
Для чего это стоит, я сделал много кодирования вокруг Imagemagick, используя PHP, и из-за ужасной документации расширения Imagemagick я прибег к созданию много приятных вызовов командной строки.