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

时间:2012-07-19 12:49:13

标签: c# .net image-manipulation

我希望能够以编程方式扭曲C#中的图像。具体来说,我想在空间上重新加权图像,使得中心像素被扩展并且外围像素占据相应较小的空间。想想鱼眼镜头。有点。

是否有可以执行此操作的.NET工具?我不介意它们是内置于.NET核心还是内置。

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分: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;

答案 2 :(得分:1)

使用WPF着色器效果可以非常轻松地实现此类效果。

如果您还没有听说过它们,我们的想法是您可以在任何图像上运行Direct3D像素着色器效果。这样可以很容易地像你在实时帧速率中那样进行效果。

在许多方面,这比在C#或C中编写它们更容易,因为您无需担心在图像缓冲区中进行颜色采样,范围检查,或者正确地循环数据,因为所有这些由视频卡硬件处理。

Here's a link到channel9视频,展示了wpffx示例库中的示例效果。

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