2010-05-13 147 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