如何在php imagemagick中指定所有四个角坐标的叠加图像

时间:2015-08-17 12:06:07

标签: php imagemagick coordinates imagick

我是Imagemagick / Imagick的初学者,所以请耐心等待。我的问题看起来很简单,但我无法在任何地方找到解决方案或任何帮助。请看下面的图片 - 我试图通过指定所有四个角坐标(以像素为单位)来创建图像。

我看了仿射失真但是这个功能对我来说太复杂了,有时需要一段时间才能执行,当它工作时 - 结果非常不可预测(图像旋转错误,有图像的一部分被删除或错位等。)因此,如果可能的话,我不想使用仿射失真。

当然,如果不能指定每个角落坐标,那么我将非常感谢我应该向哪个方向前进的帮助。我想使用Imagick,但如果这可能更适合GD或类似,我会对此持开放态度。

1]

1 个答案:

答案 0 :(得分:0)

如果没有看到源图像,以及预期的结果是什么,我会假设你正在尝试透视失真。这意味着您想要拍摄图像,并将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

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)