Firefox通过外部CSS或内联样式进行缩放时会模糊图像。

时间:2008-12-23 09:33:45

标签: css image firefox resize

当我在视觉上缩放图像时,Firefox 3会模糊它。 Firefox 2和其他浏览器没有,这是我期望的行为。对于使用png或gif sprites创建基于Web的游戏,这尤其蹩脚。

例如,在Firefox 3中显示100x100图像时,如下所示:

<img src="sprite.gif" width="200" />

<img src="sprite.gif" style="width:200px; height:200px;" />

它在FF3中显得模糊,而不是在IE中。

关于如何防止这种情况的任何想法?

9 个答案:

答案 0 :(得分:35)

我发现了FireFox的这个新功能:

http://developer.mozilla.org/En/CSS/Image-rendering

所以把它放在你的CSS中会修复它:

image-rendering: -moz-crisp-edges;

以为我会分享这些信息。很抱歉回答我自己的问题;)

答案 1 :(得分:5)

我自己只是想知道这件事,但似乎在ff3中硬编码:( http://forums.mozillazine.org/viewtopic.php?f=7&t=752735&p=5008845

ff2没有进行任何插值

IE默认情况下不会,但你可以打开它: http://www.joelonsoftware.com/items/2008/12/22.html

答案 2 :(得分:4)

您正在从原始大小缩放图像 - 所需效果通常 以平滑缩放,并且看起来FFX3已经开始这样做(我假设是双线性过滤)。我想如果你看看Safari和Opera,你会发现他们也会过滤图像。

答案 3 :(得分:2)

http://developer.mozilla.org/En/CSS/Image-rendering仅适用于Firefox的当前主干版本(Minefield / 3.6a1pre / Gecko 1.9.2)。此功能不在Firefox 3.0中,也不会在即将发布的3.5版本中。带有该选项的第一个版本将是目前处于早期规划阶段的3.5版之后的下一个主要版本,预计将于2010年发布。

答案 4 :(得分:2)

在缩放图像时,默认情况下,Internet Explorer 8也会“模糊”图像。这实际上是件好事。使用双三次采样而不是最近邻采样进行缩放时,大多数图像看起来更好。

如果您希望Internet Explorer 8像以前版本一样扩展图像,请将其放在CSS中:

-ms-interpolation-mode: nearest-neighbor;

如果您希望Internet Explorer 7扩展IE 8等图像,请使用:

-ms-interpolation-mode: bicubic;

除了图像的外观,您还必须考虑性能。我发现IE 7和IE 8在使用双三次采样时比Firefox 3.6需要更多的CPU能力来缩放图像。

答案 5 :(得分:1)

我实际上更喜欢FF的方式,因为它在缩放图像时使用插值,在大多数情况下,这使得图像看起来比在IE中看起来更好。但是我想有可能会出现不好的情况,就像使用精灵一样。

我认为没有办法绕过它。

答案 6 :(得分:1)

不幸的是,我没有这方面的解决方案,但对于大量用户(例如像素艺术家)来说,这是一个完整的交易破解者。如果您受此影响,请将反馈发送至http://hendrix.mozilla.org/并投票支持corresponding bug

Mozilla忽略了这个问题令人失望。对于受影响的用户而言,这意味着除了切换浏览器之外别无选择。 IE有一个CSS property来选择调整大小过滤器,所以这似乎是最好的选择。

以下是Google Chrome的bug report,其问题与Firefox相同。我不知道Opera,但我听说他们使用了一些启发式算法来实现更灵活的自动缩放。

答案 7 :(得分:1)

我想知道如果你创建了你期望它们被观看的最大尺寸的精灵,你会得到更好的结果,然后根据需要缩小它们吗?

答案 8 :(得分:0)

您应该避免在客户端上缩放图像。向上缩放图像就像缩放一样,浏览器没有图像的信息以比实际更高的分辨率显示它,所以你不能在没有模糊图像的情况下这样做,也许它不是IE中的注意事项,试试将200px更改为400px。