Я новичок в Imagemagick / Imagick, поэтому, пожалуйста, потерпите меня. Моя проблема выглядит довольно простой, но я нигде не мог найти решение или какую-либо помощь. Пожалуйста, взгляните на изображение ниже — я пытаюсь создать изображение, указав координаты всех четырех углов в пикселях.
я смотрел на Аффинное искажение но эта функция слишком сложна для меня, иногда требуется некоторое время для выполнения, и когда она работает — результаты очень непредсказуемы (поворот изображения неправильный, есть части изображения, удаленные или неуместные и т. д.) Так что если это возможно Я не хотел бы использовать аффинное искажение.
Конечно, если невозможно просто указать координаты каждого угла, помощь в том направлении, в котором я должен идти, очень ценится. Я хотел бы использовать Imagick, но если это возможно лучше сделать с GD или подобным, я открыт для этого.
Не видя исходных изображений и ожидаемого результата, я предполагаю, что вы пытаетесь исказить перспективу. Это означает, что вы хотите сделать снимок и преобразовать координаты MBR в предварительно определенный набор точек.
Если я получу изображение шахматной доски размером 400×400 и захочу исказить его до точек, перечисленных выше, будет работать следующая команда ImageMagick.
convert -size 400x400 pattern:checkerboard \
-virtual-pixel transparent \
-mattecolor transparent \
-distort Perspective '0,0 50,153 400,0 240,40 0,400 315,355 400,400 336,156' \
distorted_checkerboard.png
-distort Perspective '... point matrix ...'
читается как следующее
Origin Point => Finial Point
0, 0 => 50,153 (top left)
400, 0 => 240, 40 (top right)
0,400 => 315,255 (bottom left)
400,400 => 336,155 (bottom right)
Других решений пока нет …