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

时间:2008-09-01 19:02:14

标签: c# .net gdi+ color-management

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

我需要使用GDI +,而不是WPF。我更喜欢使用托管解决方案,但如果它不可用,我想PInkvoke必须满足。

2 个答案:

答案 0 :(得分:4)

有许多解决方案。

  1. 对于GDI +,check out this article at MSDN
  2. 对于WPF(.NET 3.0),请参阅System.Windows.Media命名空间。有许多不同的类,例如BitmapEncoder,具有ColorContext的概念,“代表国际色彩联盟(ICC)或图像颜色管理(ICM)颜色配置文件,与位图图像相关联。“
  3. 这两个看起来都很复杂,因此总是可以选择购买其他人的代码。 Atalasoft的DotImage Photo Pro内置了ICC配置文件设置功能。代码很昂贵;开发许可证差不多是2k。但基于他们参与dotnet社区,我会给他们一个旋转。

答案 1 :(得分:1)

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