将 ICC 颜色配置文件应用于 C# (Dotnet) 中的图像
-
09-06-2019 - |
题
如何将图像从一种颜色配置文件转换为另一种颜色配置文件(屏幕到打印机,或扫描仪到屏幕)。在 Visual C++ 中,您将使用 ICM.h 中的函数,是否有一种托管方法可以使用 GDI+ 来执行此操作?
我需要使用 GDI+,而不是 WPF。我更喜欢有一个托管解决方案,但如果它不可用,我想 PInkvoke 就足够了。
解决方案
有多种解决方案。
- 对于 GDI+, 在 MSDN 上查看这篇文章.
- 对于 WPF (.NET 3.0),请参阅 系统.Windows.媒体 命名空间。有许多不同的类别,例如 位图编码器, ,有一个概念 颜色上下文, ,它“代表与位图图像关联的国际颜色联盟 (ICC) 或图像颜色管理 (ICM) 颜色配置文件。”
这两个看起来都相当复杂,所以总是可以选择购买别人的代码。阿塔拉软件的 点图像照片专业版 内置 ICC 配置文件设置功能。代码很昂贵;开发许可证差不多2k。但基于他们对 dotnet 社区的参与,我会让他们尝试一下。
其他提示
你应该看看 液晶显示系统. 。它是一个颜色管理系统,相当完整,但用 C 编写。您可以使用 pinvoke,但我建议使用托管 C++ 包装器。实际上,我目前正在围绕引擎开发一个托管包装器(只是基础知识、颜色配置文件转换、实验室读数)。完成后我可以发布代码链接。不过可能需要一周左右。
不隶属于 StackOverflow