ImageResizer - 输出带有嵌入式ICC配置文件的已调整大小的图像

时间:2015-01-21 13:57:00

标签: imageresizer color-profile color-management

我现在一直在玩ImageResizer大约一个星期左右,我想知道是否可以输出与源相同的ICC配置文件嵌入(并且在同一颜色空间中)的已调整大小的图像图像,例如Adobe 1998色彩空间?

我打算使用ImageResizer作为我公司工作流程的一部分,用于在我们的成像部门查看它们的一致性之前缩略我们的源图像,因此相同的颜色配置文件是必不可少的。生成速度并不重要,因为它们一旦生成就会被缓存。

有人可以告诉我,如果ImageResizer能够做到这一点,那么我需要重载哪些管道部分来实现这个目标?

感谢。

1 个答案:

答案 0 :(得分:0)

ImageResizer以网络为目标,始终在sRGB色彩空间中生成图像;浏览器不支持ICC配置文件,因此我们不会使用它们。

那就是说,你当然可以修改几行并获得你想要的结果。

ImageResizer有3个管道 - GDI +(默认),FreeImage和WIC。

  • GDI +不支持输出配置文件 - 至少不支持System.Drawing。
  • FreeImage应该具有非常好的ICC配置文件支持
  • WIC也应该支持ICC配置文件,但很可能与GDI +共享错误,因为两者都使用相同的编解码器。

要进行更改,请转到ImageResizer repository并点击' fork'按钮。

当您克隆fork时,确定在进行更改之前切换到开发分支 - 否则您的更改将与下一个主要版本不兼容。

您可能想要修改Plugins/FreeImage/FreeImageEncoder.cs。 FreeImage documentation is in pdf form (yay!),因此您可能希望快速扫描它以了解它如何处理配置文件。

测试时,请确保通过安装3个FreeImage插件启用它们通过命令字符串激活它们,&builder=freeimage将激活完整的FreeImage管道,但是&encoder=freeimage将只激活编码器部分(如果您想使用GDI +编辑图像,但通过FreeImage保存,则非常有用)。

您可能还想使用ignoreIcc=true命令,这样您就不会看到解释为Adobe RGB的sRGB值。