将ICC颜色配置文件应用于C#(Dotnet)中的图像

时间:2020-03-05 18:46:05  来源:igfitidea点击:

如何将图像从一种颜色配置文件转换为另一种颜色配置文件(从屏幕到打印机,或者从扫描仪到屏幕)。在Visual C ++中,我们可以在ICM.h中使用该函数,是否可以通过GDI +进行托管?

我需要使用GDI +,而不是WPF。我希望有一个托管的解决方案,但是如果没有可用的解决方案,我想PInkvoke就足够了。

解决方案

回答

有许多解决方案。

  • 对于GDI +,请在MSDN上查看此文章。
  • 对于WPF(.NET 3.0),请参见System.Windows.Media命名空间。有许多不同的类,例如BitmapEncoder,具有ColorContext的概念,该概念"表示与位图图像关联的国际色彩联盟(ICC)或者图像色彩管理(ICM)颜色配置文件"。

两者看起来都相当复杂,因此总可以选择购买其他人的代码。 Atalasoft的DotImage Photo Pro具有内置的ICC配置文件设置功能。开发许可证几乎是2k。但是基于他们在互联网社区的参与,我会给他们一个回旋感。

回答

我们应该看看Lcms。它是一个色彩管理系统,相当完整,但是用C编写。我们可以使用pinvoke,但是我建议使用托管C ++包装器。实际上,我目前正在引擎周围的托管包装器(只是基础知识,颜色配置文件转换,实验室读数)。完成后,我可以发布指向代码的链接。不过可能要一周左右。