2010-10-27 70 views
0

我正在爲這家印刷公司創建一個小型圖像上傳驗證程序,他們需要確保上傳的圖像具有CMYK或PMS的顏色空間。檢測圖像顏色空間是CMYK還是PMS

這是我使用的是什麼現在:

Image img = Image.FromStream(fupFile.PostedFile.InputStream); 
ImageFlags flags = (ImageFlags)Enum.Parse(typeof(ImageFlags), img.Flags.ToString()); 

我可以再檢查標誌,其中將包含如「部分可伸縮| ColorSpaceCmyk | HasRealPixelSize」的東西。這裏有更多的信息:http://msdn.microsoft.com/en-us/library/system.drawing.imaging.imageflags.aspx

請注意,PMS色彩空間沒有標誌。有沒有辦法檢查?

此外,我上傳的一些文件,他們根本沒有顏色空間標誌。這是否意味着色彩空間無法被識別?

我也想知道這是否是一種檢查色彩空間的萬無一失的方法,還是有更好的策略?

編輯:

我一直在找過來,我想你可以從圖像的元數據獲得了大量的數據。 http://msdn.microsoft.com/en-us/library/xddt0dz7%28v=VS.90%29.aspx

有誰知道元數據是否包含圖像的顏色空間?

回答

1

PMS是而不是一個色彩空間,而是一個色彩匹配系統(PANTONE色彩匹配系統)。我嚴重懷疑你會發現任何流行的位圖圖像文件編解碼器,採用這種編碼像素顏色的方法。相反,他們會將PANTONE顏色編碼爲CMYK或RGB(或可能是其他顏色模型)之一。

像Postscript或PDF這樣的矢量文件格式可能會嵌入包含PMS參考的專色,但是,即使這些格式通常需要與PMS編號相同的RGB或CMYK。

確定圖像顏色模型的最佳方法是瞭解和理解文件格式本身。讀取和解析原始文件頭文件以確定底層數據是否存儲爲CMYK,RGB等並不難...

強大的工具包,例如Leadtools,可能會使此任務變得更加簡單和更準確比你從.NET收集的任何東西都要好。

+0

感謝有關PMS的信息,我不知道。至於閱讀和解析原始頭文件,你能告訴我該怎麼做,或者讓我朝正確的方向發表一篇能夠幫助我的博客文章嗎?此外,所有圖像類型(.jpg,.gif,.png)中的顏色空間是否一致,或每個圖像類型是否具有不同的顏色空間? – Steven 2010-10-27 20:37:48