为了简单起见,我试着把一个图像放在一个图像/画布上。画布= 1920 x1080,图像大小无关紧要。我想把图像添加到画布上,但每个角都有特定的x/y坐标。看看下面的数组,看看我在做什么:
[0] => Array
(
[cp1x] => 500
[cp1y] => 250
[cp2x] => 250
[cp2y] => 380
[cp3x] => 400
[cp3y] => 700
[cp4x] => 1500
[cp4y] => 800
)
CP 1X/CP 1 Y用于左上方。CP 2X/CP 2 Y用于右上方。CP 3X/CP 3 Y用于左下方。CP 4X/CP 4 Y用于右下方。
我最好在php和-或ImageMagick中得到一个解决方案。
我也画了些草图以便更好地解释。希望一切都清楚了。
Image
Base/canvas
Result
尝试用Imagick和PHP转换。
2条答案
按热度按时间cwtwac6a1#
您的坐标与您的描述不符。它们是从左上角开始逆时针排列的。
您可以在Imagemagick中使用+distort透视在您的坐标和输入图像的角之间获得结果。
输入:
Unix语法:
结果:
vptzau2j2#
我没有任何可用的PHP设置,但下面是在命令行中的操作方法。我使用1920x1080的漩涡作为背景(
bg.jpg
),使用400x400的叠加图像作为前景(fg.jpg
)来扭曲:您将看到有4对坐标,源图像中的坐标列在目标图像中的对应点之前。