将水印的视角扭曲到4个点

时间:2014-01-30 18:00:53

标签: php imagemagick

我想要实现的是this question中正在尝试的人。但在我的情况下,我想将其编码为PHP脚本。

我见过一些代码可以这样做:

$controlPoints = array(
    10, 10,
    10, 5,

    10, $screenshot->getImageHeight() - 20,
    10, $screenshot->getImageHeight() - 5,

    $screenshot->getImageWidth() - 10, 10,
    $screenshot->getImageWidth() - 10, 20,

    $screenshot->getImageWidth() - 10, $screenshot->getImageHeight() - 10,
    $screenshot->getImageWidth() - 10, $screenshot->getImageHeight() - 30);


$screenshot->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

但不幸的是,我不理解控制点背后的数学。

我想如果我只需要输入图像的4个坐标,我想要“拉伸”图像,那将是我需要的,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

控制点是标识要移动的像素和位置的坐标。例如,如果前两个数字是0, 0,则它们会识别左上角的像素。下一对数字表示失真后第一个像素的目的地。下一对识别要移动的第二个像素,然后是其目标的坐标。您可以提供四个位置(例如角落)的坐标,软件会计算出如何处理它们之间的所有像素。

你的四对坐标是一个盒子的四个角:它们在哪里以及你想要它们在哪里。

ImageMagick Usage site上有一些很好的例子。