2010-05-13 133 views
1

你好,以stackoverflow成員!這 是我的第一篇文章,但我喜歡閱讀 在這個 論壇的問題和答案!如何將位圖圖像轉換爲CIELab圖像?

我使用VS2008,CSHARP,.NET 3.5和 的Windows XP專業版最新的補丁在這個 項目。

我在JPEG文件中讀取到的 下列方式使用C#一個 位圖圖像:

Bitmap bmp = new Bitmap("background.jpg"); 
Graphics g = Graphics.FromImage(bmp); 

我然後寫上使用各種束帶和的DrawImage 命令摹 一些文字和標誌。然後我想用 命令寫這篇 位爲TIFF文件:

bmp.Save("final_artwork.tif", ImageFormat.Tiff); 

我不知道,當你做的bmp文件 將是什麼最終結果TIFF的 頭的TIFF標籤。保存爲上面顯示的 ?

但我想生產與光度的CIELab一個TIFF 圖像文件, BITSPERSAMPLE 8,SAMPLESPERPIXEL 3, FILLORDER MSB2LSB,定向 左上,PLANARCONFIG CONTIG,也 未壓縮和singlestrip。

林相當肯定,至少我還沒有發現 微軟API和 的CIELab什麼,我不能轉換位圖 圖像的CIELab光度和使用任何從 微軟API或.NET 3.5 其他要求 環境 - 有人請糾正 如果我錯了。

我在 的libtiff用於項目過去,但只是寫一個TIFF文件 在內存中的TIFF圖像是 已經在的CIELab格式和所有 其他要求按照上面提到的。 Im not certain libtiff can convert from CSharp bitmap image,which is probably RGB RGB,to CIELab,8 bps,and 3 spp?

也許我可以使用OpenCVImage或Emgu CV 或類似的東西?

所以,主要的問題是怎麼回事 將得到如上文所述成 的CIELab TIFF我最終 位圖圖像最簡單的方法,也符合每個上面的其他 要求?

感謝您的任何建議和代碼 片段,你可以提供?

尼爾·戴維斯

+0

TranslateBitmapBits函數可以用於我想要做什麼嗎? – 2010-05-13 23:44:49

回答

1

嘗試ImageMagick庫,我敢肯定有它好的C#的包裝,它支持幾乎是人類已知的每一個圖像文件格式!

0

我想提一提我的愛好項目庫:Colourful

它支持從RGB到的CIELab轉換。你有很多選項可供選擇,比如白點和RGB工作空間。它也可以進行色彩適應,所以得到的色彩應該是最好的結果。

但你必須通過像素的圖像像素轉換,例如使用LockBits方法,這是快於SetPixelGetPixel