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

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

有帮助吗?

解决方案

有多种解决方案。

  1. 对于 GDI+, 在 MSDN 上查看这篇文章.
  2. 对于 WPF (.NET 3.0),请参阅 系统.Windows.媒体 命名空间。有许多不同的类别,例如 位图编码器, ,有一个概念 颜色上下文, ,它“代表与位图图像关联的国际颜色联盟 (ICC) 或图像颜色管理 (ICM) 颜色配置文件。”

这两个看起来都相当复杂,所以总是可以选择购买别人的代码。阿塔拉软件的 点图像照片专业版 内置 ICC 配置文件设置功能。代码很昂贵;开发许可证差不多2k。但基于他们对 dotnet 社区的参与,我会让他们尝试一下。

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top