如何使用 .NET 从图像中删除颜色(颜色)配置文件信息?
我有一个工具可以在运行时操作图像作为我的网络应用程序的一部分。
这通常工作正常,但随着 Firefox 3.5 的发布,我们看到了一些颜色问题。我相信这是因为 Firefox 3.5 现在支持嵌入式 ICC 颜色配置文件,这是其他浏览器所不具备的。
为了实现显示的一致性,我想以编程方式删除 .NET 代码中的所有 ICC 颜色配置文件。
有人能指出我正确的方向吗?
谢谢, - 克里斯
I have a tool which manipulates images at runtime as part of my web app.
This generally works fine, but with the release of Firefox 3.5 we're seeing some colour problems. I believe this is because Firefox 3.5 now supports embedded ICC colour profiles where no other browsers do.
In order to achieve consistency of display, I'd like to programatically remove any ICC colour profile in my .NET code.
Can anyone point me in the right direction?
Thanks,
- Chris
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经过进一步调查,IE 似乎注意到了一些 Gamma 校正信息,FireFox 3.5 注意到了嵌入的 ICC 颜色配置文件。
默认情况下,所有这些信息似乎都是由 .NET 框架的 PNG 实现添加的。
可以在 .NET 中删除此信息 - 我已经
On further investigation, it appears that IE was taking notice of some Gamma correction information, and FireFox 3.5 was taking notice of an embedded ICC colour profile.
All of this information appears to have been added by the .NET framework's PNG implementation by default.
It is possible to remove this information in .NET - I've blogged about it here.
这种方法可能有效(我没有测试过),尽管它可能有点过分:
GDI+中的Bitmap类似乎不支持颜色配置文件,但如果它确实支持它们,我不认为它们将由上面示例中的 DrawImage 操作继承。
This method may work (I have not tested it), although it may be overkill:
The Bitmap class in GDI+ does not appear to support color profiles, but if it does support them, I don't think they would be carried over by the DrawImage operation in the above sample.