我想要实现的是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个坐标,我想要“拉伸”图像,那将是我需要的,但我不知道该怎么做。
答案 0 :(得分:0)
控制点是标识要移动的像素和位置的坐标。例如,如果前两个数字是0, 0
,则它们会识别左上角的像素。下一对数字表示失真后第一个像素的目的地。下一对识别要移动的第二个像素,然后是其目标的坐标。您可以提供四个位置(例如角落)的坐标,软件会计算出如何处理它们之间的所有像素。
你的四对坐标是一个盒子的四个角:它们在哪里以及你想要它们在哪里。
ImageMagick Usage site上有一些很好的例子。