【问题标题】:Assign an ICC Color Profile to an image in C#将 ICC 颜色配置文件分配给 C# 中的图像
【发布时间】:2012-03-08 18:09:15
【问题描述】:

简而言之:我想为图像分配 ICC 颜色配置文件而不应用它。

更多信息: 在我的公司中,我们需要将多层 pdf 文件合并为一层。为此,我们将 pdf 页面合并为图像,然后将图像保存为 pdf。但是在创建图像的过程中,图像的颜色配置文件会丢失。如果我们在 C# 中应用颜色配置文件,该配置文件将从设备 RGB(.NET 的默认输出)转换为 sRGB_IEC61966-2-1_no_black_scaling.icc 配置文件。在转换中,一些颜色会发生变化。我们需要分配它,而不是应用颜色配置文件。这意味着没有颜色被转换。

有谁知道如何做到这一点?提前致谢。

【问题讨论】:

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


    【解决方案1】:

    在您开始处理您的位图之前(即在您开始布局各个 PDF 组件之前),请确保该位图已应用您的目标 ICC 配置文件。您说您的个人图片中嵌入了所需的配置文件,而这在转换中丢失了。要保留配置文件,请确保使用以下加载方法,该方法尊重任何颜色配置文件信息:

    http://msdn.microsoft.com/en-us/library/4sahykhd.aspx

    您可以将第一个位图用作合成工作的目标,然后再将其导出。它应该保留原始的 ICC 配置文件。

    或者,您可以使用 FreeImage 或 ImageMagick 库来明确管理颜色配置文件。它们都有 .NET 包装器并允许剥离/应用 ICC 配置文件:

    Free Image Library

    Image Magick Command-Line Profile Options

    Image Magick .NET Wrapper

    我希望这会有所帮助。

    【讨论】:

    • 我正在使用 Aspose.Pdf.Kit 将 PDF 页面转换为 System.Windows.Image,并且该功能不提供保留颜色配置文件的选项。但我目前正在研究您建议的库。
    • 这个(免费图片库)解决了我问的问题,但现在我有另一个,我会在 17 小时内奖励赏金。
    • @SynerCoder - 图书馆的帮助很棒。我一直想自己做更多的事情,因为它看起来非常灵活。抱歉,您遇到了一个新问题 :(
    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多