有没有用于扭曲/变形图像的.NET工具?

5
我希望能够在C#中以编程方式扭曲图像。具体来说,我想在空间上重新加权图像,以使中央像素扩展,周围像素所占的比例减少。类似于鱼眼镜头。有任何可以完成这个任务的.NET工具吗?我不介意它们是内置于.NET核心还是附加组件。
3个回答

1

免责声明:我在Atalasoft工作。

我们的免费图像SDK DotImage Photo Free可以实现以下功能:

http://www.atalasoft.com/free-dotnet-image-sdk

看看 Atalasoft.Imaging.ImageProcessing.Transforms.LensTransform。你可以这样做:
AtalaImage img = new AtalaImage("file.jpg");
LensTransform cmd = new LensTransform();
cmd.Radius = 100;
cmd.Offset = new Point(100, 100); // set the center
AtalaImage img2 = cmd.Apply(img).Image;

您的网站似乎没有展示这个程序能做什么的例子。在这里或那里展示一些例子会很有帮助。 - Doug S

1
嗯...你可以尝试使用ImageMagick的API来执行任何你需要的操作。

http://www.imagemagick.org/script/api.php

他们有两个可用的.NET解决方案。您应该能够调查并找到最适合您需求的一个。其中一个功能包括广义像素扭曲,您可能可以使用它来满足您的需求。


1

您可以使用WPF着色器效果轻松实现这些效果。

如果您还没有听说过它们,那么这个想法是您可以在任何图像上运行Direct3D像素着色器效果。这将使得实时帧速率下执行您所描述的效果非常容易。

在许多方面,这比使用C#或C编写它们更容易,因为您不需要担心在图像缓冲区中寻址颜色样本、范围检查和正确循环数据,所有这些都由视频卡硬件处理。

这里是一个链接,展示了wpffx示例库中的示例效果。

我认为“平滑放大”非常接近您想要的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接