将ICC颜色配置文件分配给C#中的图像
问题描述:
简而言之:我想为图像分配ICC颜色配置文件而不应用它。将ICC颜色配置文件分配给C#中的图像
更多信息: 在我的公司,我们需要将一个多层的pdf文件合并到一个图层中。为此,我们将pdf页面合并到图像中,然后将图像保存为pdf。但在创建图像的过程中,图像的颜色配置文件会丢失。如果我们在C#中应用颜色配置文件,配置文件将从Device RGB(.NET的默认输出)转换为sRGB_IEC61966-2-1_no_black_scaling.icc
配置文件。在转换过程中,一些颜色会发生变化我们不需要应用颜色配置文件,而是分配它。意思是没有颜色被转换。
有谁知道如何做到这一点?提前致谢。
答
在开始处理位图之前(即在开始各个PDF组件的布局之前),请确保位图已应用目标ICC配置文件。你说你的个人照片中嵌入了所需的个人资料,而这在转换过程中正在失去。要保留个人资料,请确保您使用以下负载方法,它尊重任何颜色配置文件信息:
http://msdn.microsoft.com/en-us/library/4sahykhd.aspx
您可以使用此第一图作为目标的组成工作,然后再导出。它应该保留原始的ICC配置文件。
或者,您可以使用FreeImage或ImageMagick库来显式管理颜色配置文件。他们都有.NET包装,并允许剥离/应用的ICC配置文件:
Image Magick Command-Line Profile Options
我希望这有助于。
我使用Aspose.Pdf.Kit将PDF页面转换为System.Windows.Image,并且该功能不提供保留颜色配置文件的选项。但我目前正在研究你建议的图书馆。 – SynerCoder 2012-02-24 13:27:23
这个(免费图像库)解决了我问的问题,但现在我有另一个,我会在17个小时内奖赏赏金。 – SynerCoder 2012-02-24 17:23:31
@SynerCoder - 图书馆帮助很棒。我保持自己做的更多的意义,因为它看起来非常灵活。对不起,你已经提出了一个新的问题,虽然:( – 2012-02-24 17:53:55