ImageMagick扭曲

时间:2013-12-22 18:26:48

标签: c# imagemagick

我正在尝试使用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);
}

我有这个形象:

input

输出:

output

我真正想要的是能够更改类似的透视图和大小,并使其看起来与此类似: what I want

它的质量可能不高,但我希望看到类似的结果。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

数字串是标识要移动的像素和位置的坐标。在您的示例中,前两个数字0, 0标识左上角的像素。下一对数字20, 60表示失真后该像素的目的地。下一对90, 0标识要移动的下一个像素,后跟其目标的坐标。该软件计算出如何处理它们之间的所有像素。

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

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