我在网页中将渐变图像作为PNG(无透明度)。通过获取显示页面并从页面裁剪图像的Chrome的屏幕截图,我看到绘制的图像完全相同...将图片旁边的屏幕截图放在Paint中,它们是相同的。
但是当我对IE8中呈现的页面执行相同操作时,颜色也不同。我认为最初IE8必须裁剪边缘并拉伸它,但事实并非如此...... IE8正在渲染不在原始图像中的颜色,就像图像顶部有一个滤镜一样。
任何人都有任何想法,以及我如何解决这个问题?关键是我的背景填充了纯色,渐变图像设计为与此完美融合...图像的一侧与页面背景的RGB值相同。显然,如果图像没有正确绘制,你会看到令人讨厌的边缘效应。
答案 0 :(得分:4)
它只是略有不同,对吗?但足以看出差异?
那是因为PNG文件通常存储gamma correction信息,这应该是个好主意,但实际上不是:The Sad Story of PNG Gamma “Correction”。
解决此问题的最佳方法是从PNG中删除该伽玛信息,实际上是所有其他与颜色空间相关的信息。这些都存储在gAMA
,sRGB
,cHRM
和iCCP
块中。
有几个实用程序可以执行此操作,例如Pngcrush和Pngout。这些工具有更多,有些功能比其他功能更多,有些用户友好,但你现在应该能够自己找到它们。
The PNG Gamma Dilemma总结了第一篇文章,并提供了Pngcrush的一些使用信息。