如何在 php imagemagick 中指定所有四个角坐标的叠加图像
How to specify an overlay image all four corners coordinates in php imagemagick
我是 Imagemagick / Imagick 的初学者,所以请多多包涵。我的问题看起来很简单,但我找不到解决方案,也找不到任何帮助。请查看下图 - 我正在尝试通过以像素为单位指定所有四个角坐标来创建图像。
我查看了 Affine Distortion 但那个函数对我来说太复杂了,有时需要一段时间才能执行,而且当它起作用时 - 结果非常不可预测(图像旋转是错误的,图像的某些部分被删除或放错了位置等)因此,如果可能的话,我不想使用仿射失真。
当然,如果不能只指定每个角的坐标,非常感谢能帮助我确定前进方向。我想使用 Imagick,但如果使用 GD 或类似工具可能更好,我对此持开放态度。
在没有看到源图像和预期结果的情况下,我假设您正在尝试透视失真。这意味着您想要拍摄图像,并将 MBR 坐标转换为一组预定义的点。
如果我得到一张 400x400 的棋盘格图像,并想将其扭曲为上面列出的点,则可以使用以下 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)
我是 Imagemagick / Imagick 的初学者,所以请多多包涵。我的问题看起来很简单,但我找不到解决方案,也找不到任何帮助。请查看下图 - 我正在尝试通过以像素为单位指定所有四个角坐标来创建图像。
我查看了 Affine Distortion 但那个函数对我来说太复杂了,有时需要一段时间才能执行,而且当它起作用时 - 结果非常不可预测(图像旋转是错误的,图像的某些部分被删除或放错了位置等)因此,如果可能的话,我不想使用仿射失真。
当然,如果不能只指定每个角的坐标,非常感谢能帮助我确定前进方向。我想使用 Imagick,但如果使用 GD 或类似工具可能更好,我对此持开放态度。
在没有看到源图像和预期结果的情况下,我假设您正在尝试透视失真。这意味着您想要拍摄图像,并将 MBR 坐标转换为一组预定义的点。
如果我得到一张 400x400 的棋盘格图像,并想将其扭曲为上面列出的点,则可以使用以下 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)