2012-07-19 30 views
5

我希望能夠以編程方式在C#中扭曲圖像。具體來說,我想重新在空間上對圖像進行加權,使得中心像素得到擴展,並且周邊像素佔據較小的空間。想想魚眼鏡頭。均田。是否有任何用於扭曲/變形圖像的.NET工具?

是否有任何.NET工具可以做到這一點?我不介意它們是否內置於.NET核心,或者是一個插件。

回答

1

免責聲明:我工作的Atalasoft

我們免費的成像SDK DotImage照片免費,可以這樣做:

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; 
1

嗯...你可以嘗試使用ImageMagick的API來執行任何你需要的操作。

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

他們有兩個可用的.NET解決方案。您應該能夠進行調查並找到最適合您需求的方案。其中一個功能包括廣義像素失真,您可以使用它來滿足您的需求。

1

你可以用WPF着色器效果很容易達到這樣的效果。

如果您還沒有聽說過它們,那麼您可以在任何圖像上運行Direct3D像素着色器效果。這將使您可以非常輕鬆地完成像實時幀速率描述的效果。

在許多方面,這比在C#或C中編寫它們容易,因爲您不必擔心在圖像緩衝區中的顏色樣本的地址,範圍檢查和/或正確循環數據,因爲所有這是由視頻卡硬件處理的。

Here's a link到一個channel9視頻,展示了wpffx示例庫中的示例效果。

我認爲「光滑的放大」非常接近你想要的。