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

如何将图像从一种颜色配置文件转换为另一种颜色配置文件(从屏幕到打印机,或扫描到屏幕)。 在Visual C ++中,您将使用ICM.h中的函数,是否有一种托管方式来使用GDI +?

我需要使用GDI +,而不是WPF。 我更喜欢有一个托管解决方案,但如果它不可用,我猜PInkvoke就足够了。

有很多解决方案。

  1. 对于GDI +, 请查看MSDN上的这篇文章 。
  2. 对于WPF(.NET 3.0),请参阅System.Windows.Media命名空间。 有许多不同的类,例如BitmapEncoder ,它们具有ColorContext的概念,“代表与位图图像相关联的国际色彩联盟(ICC)或图像颜色管理(ICM)颜色配置文件。”

这两个看起来都很复杂,因此总是可以选择购买其他人的代码。 Atalasoft的DotImage Photo Pro内置了ICC配置文件设置function。代码昂贵; 开发许可证差不多是2k。 但基于他们参与dotnet社区,我会给他们一个旋转。

你应该看看Lcms 。 它是一个色彩管理系统,相当完整,但用C语言编写,你可以使用pinvoke,但我会推荐使用Managed C ++包装器。 我实际上正在开发一个围绕引擎的托管包装器(只是基础知识,颜色配置文件转换,实验室读数)。 我完成后可以发布代码链接。 可能是一周左右。