我正在尝试使用ImageMagick的透视功能。我看过这些例子,我无法理解哪些值对应。我有这段代码:
var stream = new MemoryStream();
using (MagickImage image = new MagickImage("image.jpg"))
{
image.VirtualPixelMethod = VirtualPixelMethod.Tile;
image.MatteColor = Color.DodgerBlue;
image.Distort(DistortMethod.Perspective, new double[] { 0, 0, 20, 60, 90, 0, 70, 63, 0, 90, 5, 83, 90, 90, 85, 88 });
image.Write(stream);
}
我有这个形象:
输出:
我真正想要的是能够更改类似的透视图和大小,并使其看起来与此类似:
它的质量可能不高,但我希望看到类似的结果。我怎样才能做到这一点?
答案 0 :(得分:2)
数字串是标识要移动的像素和位置的坐标。在您的示例中,前两个数字0, 0
标识左上角的像素。下一对数字20, 60
表示失真后该像素的目的地。下一对90, 0
标识要移动的下一个像素,后跟其目标的坐标。该软件计算出如何处理它们之间的所有像素。
你的四对坐标是一个盒子的四个角:它们在哪里以及你想要它们在哪里。
ImageMagick Usage site上有一些很好的例子。