【轉載】關於.NET下開源及商業影象處理(PSD)元件

weixin_34162629發表於2017-07-19

原創】關於.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的影象遊戲引擎)的一部分,但可惜的是這個元件好像沒有完善,這篇文章也沒有更新,有不少錯誤。



如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,但是未經作者本人同意,轉載文章之後必須在文章頁面明顯位置給出作者和原文連線,否則保留追究法律責任的權利。

相關文章