【问题标题】:Apply an ICC Color Profile to an image in C# (Dotnet)将 ICC 颜色配置文件应用于 C# (Dotnet) 中的图像
【发布时间】:2010-09-07 11:41:52
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    有多种解决方案。

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

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

    【讨论】:

    • MSDN 链接失效
    【解决方案2】:

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

    【讨论】:

    • 完成后请务必发送链接!听起来很完美。
    • Mattlant,你有没有完成 lcms 的托管包装器。如果是的话,介意把它贴在某个地方吗?谢谢。
    猜你喜欢
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2017-07-07
    相关资源
    最近更新 更多