3

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

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

4

2 答案 2

4

有许多解决方案。

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

这两个看起来都相当复杂,所以总是可以选择购买别人的代码。Atalasoft的DotImage Photo Pro内置了 ICC 配置文件设置功能。代码昂贵;一个开发许可证几乎是 2k。但基于他们对 dotnet 社区的参与,我会试一试。

于 2008-09-01T20:37:04.840 回答
1

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

于 2008-10-01T13:19:29.737 回答