Центр с гравитацией с помощью Imagick и PHP

Я ищу цвет и изображение центра, используя 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 говорит, что он должен применяться к объекту (в данном случае единственное изображение)...

Ответ 2

Слишком поздно для оригинального человека, который задал вопрос, но для будущих посетителей, правильное решение

bool Imagick:: cropThumbnailImage (int $width, int $height)

Извините за поздний ответ, но я тоже застрял здесь всего 30 минут назад, и первый результат google перенаправил меня сюда. Надежда же не будет с другими.

Ответ 3

Метод Imagemagick object cropImage() Третий и четвертый аргументы определяют верхний левый угол урожая. Либо попробуйте передать их как null (и используйте метод setGravity()), либо вам действительно нужно будет вычислить, где должна быть урожай, и поместить эти числа в метод cropImage() (и не беспокоить setGravity()).

Для чего это стоит, я сделал много кодирования вокруг Imagemagick, используя PHP, и из-за ужасной документации расширения Imagemagick я прибег к созданию много приятных вызовов командной строки.