将ICC颜色配置文件分配给C#中的图像

时间:2012-02-17 10:30:35

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

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

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

有谁知道如何实现这一目标?提前谢谢。

1 个答案:

答案 0 :(得分:7)

在开始处理位图之前(即在开始单个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

我希望这会有所帮助。