【原創】關於.NET下開源及商業圖像處理(PSD)組件


       本博客所有文章分類的總目錄:http://www.cnblogs.com/asxinyu/p/4288836.html

本博客其他.NET開源項目文章目錄:http://www.cnblogs.com/asxinyu/p/4329755.html

1 前言

這篇博客的背景是:為了完成吉日嘎拉的“PSD文件損壞檢測和圖層檢測”任務,查找了目前.NET各種開源的及商業的圖像處理資料,在完成任務之后,進行總結。此次任務主要是用C#操作PSD(PhotoShop)文件,中文資料很少,主要的英文資料都在CodeProject網站。項目要求對用戶上傳的PSD文件進行檢測,是否損壞,是否能正常打開,並判斷是否只有1個圖層。俗話說:“冰凍三尺非一日之寒”,這次找關於C#處理PSD的開源資料,真是“挖地三尺”,我也覺得這“非一日之力”就可以做到。平時關注技術,了解很多,找起來才快,也需要一點主動學習的能力。

2 .NET圖像處理組件總結

說起圖像處理,肯定很多人都知道博客園的xiaoite,用.NET做圖像處理,很強大。由於圖像處理的特殊性,可能很多人認為.NET做圖像處理效率有問題,但xiaoite用實際證明了其實這都不是問題,大家可以去他的博客詳細了解下。呵呵,我只是一個菜鳥,把別人現成的東西組合一下,會使用而已。那下面介紹一下,我找到的幾個.NET圖像處理組件(和PSD相關的)。

2.1 Paint.NET

.NET下的圖像處理開源項目,最有名的應該是Paint.NET,小巧,靈活,足夠強大,相比笨重收費的PhotoShop,這真是一個不錯的選擇。雖然該項目源代碼現在不開放了,但軟件使用仍然是免費的。昨天看了一下他的dll,沒有混淆,有精力的可以去反編譯看看。我的解決辦法也是從這個項目找到的答案。Paint.NET的源代碼3.1版本的應該還可以在網上找得到,另外Paint.NET也有很多插件,比如Paint.NET_PSD_Plugin,就可以用插件來加載PSD文件,並轉換為Paint.NET的格式。前幾天,給一個朋友PS2張簡單的圖片,用的就是Paint.NET,操作和PhotoShop差不多,界面很清爽,功能足夠強大吧,推薦一下。

2.2 Imagemagick.NET

Imagemagick.NET是用C#對開源的Imagemagick圖像處理組件的進行了一個封裝。里面的代碼大部分都是C++/CLI,能力有限,沒有深入研究。看了一下說明,支持的格式很多,但對PSD文件的圖層和文件損壞檢測也沒有現成的,不過,這個項目的確很值得學習,有機會研究下 C++/CLI,對圖像處理應該有很大幫助。Imagemagick支持的語言和平台都很廣泛,值得一看。

2.3 Skimpt

Skimpt其實這個組件以前沒看到過,是一個.NET下開源的屏幕截圖軟件。它的大部分代碼我沒仔細看,只發現它支持PSD文件,所以就主要看了看PSD操作的部分,相對不錯,PSD代碼部分也是借鑒了CodeProject上面的幾篇文章。都很相似,不過都修改了不少錯誤,這個其實還不錯,勉強可以正確判斷圖層,但是對PSD文件的損壞檢測不了,它只是直接讀取文件的頭信息,並不去檢驗數據的正確性。如果有做屏幕截圖之類的工具,這是一個不錯的參考。雖然沒用里面的代碼,但也發現Google Code其實也有很多不錯的項目。

2.4 ImageGlue.NET 

ImageGlue.NET是商業的圖像處理組件,支持的格式列了一大堆:支持的格式。由於這個組件我很早就知道,但沒用過,手上也有破解版,所以就試了一下,可以對PSD文件的損壞檢測,但是對圖層的判斷一直出錯,有時候是正確的,有時候是錯誤的,商業組件做成這樣,一怒之下,拋棄它了,而且破解版也不太敢用,當時只是試試看好用不,然后把里面的一小段代碼弄出來就可以了,沒想到這貨還調用了非托管的dll,代碼沒雖然有混淆,但命名空間足夠的坑爹,對圖像的一些基本處理應該還是不錯的,關鍵是支持的格式全面。留個腳印,讓大家以后也有個選擇。

2.5 其他關於.NET操縱PSD的文章

其實我首先查到的還是codeproject上的一篇2006年發表的英文博客Yet Another PSD Parser。該作者也是為了完成一個PSD的項目,需要.NET操作PSD文件,而處於版權和許可證的原因,沒有采用Adobe公司的SDK,而是自己開發了這套組件。這個組件也是作者Endogine項目(一個2D的圖像游戲引擎)的一部分,但可惜的是這個組件好像沒有完善,這篇文章也沒有更新,有不少錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM