当前位置: 首页 > 面试题库 >

图像缩放会导致Firefox / Internet Explorer的质量下降,但不会导致镀铬

柴良哲
2023-03-14
问题内容

在Chrome中,然后在Firefox或InternetExplorer中。图像原本为120像素,我正在缩小为28像素,但是无论您将其缩小为多少,它看起来都非常糟糕。

图像是PNG,并且具有Alpha通道(透明度)。

以下是相关代码:

HTML:

<a href="http://tinypic.com?ref=2z5jbtg" target="_blank">
    <img src="http://i44.tinypic.com/2z5jbtg.png" border="0" alt="Image and video hosting by TinyPic">
</a>​

CSS:

a {
    width: 28px;
    height: 28px;
    display: block;
}

img {
    max-width: 100%;
    max-height: 100%;
    image-rendering: -moz-crisp-edges;
    -ms-interpolation-mode: bicubic;
}

CSS 的image-rendering-ms-interpolation-mode行似乎没有任何作用,但是我在对该问题进行一些研究时在网上找到了它们。


问题答案:

看来你是对的。没有选项可以更好地缩放图像:

我已经测试了FF14,IE9,OP12和GC21。只有GC具有可通过停用的更好的缩放比例image-rendering: -webkit- optimize-contrast。所有其他浏览器的缩放比例均没有/差。

不同输出的屏幕快照:

更新

同时,更多浏览器支持平滑缩放:

  • ME38(Microsoft Edge)具有良好的缩放比例。不能禁用它,它适用于JPEG和PNG,但不适用于GIF。

  • FF51(关于自FF21起的@karthik的注释)具有良好的缩放比例,可以通过以下设置禁用它:

    image-rendering: optimizeQuality
    

    image-rendering: optimizeSpeed
    image-rendering: -moz-crisp-edges

注意:关于MDN,该optimizeQuality设置是以下各项的同义词auto(但auto不会禁用平滑缩放):

早期草案中存在的值optimizeQuality和optimizeSpeed(来自其SVG对应项)被定义为自动值的同义词。

  • OP43的行为类似于GC(自2013年起就基于Chromium,因此并不令人惊讶),并且该选项仍然禁用平滑缩放:
    image-rendering: -webkit-optimize-contrast
    

IE9-IE11不支持。该-ms-interpolation-mode设置仅在IE6-IE8中有效,但在IE9中已删除。

PS平滑缩放默认情况下完成。这意味着不需要任何image-rendering选择!



 类似资料:
  • 我有以下图像标记使用和属性来插入响应图像: 据我所知,我只是告诉浏览器我所有可用的图像大小,它应该只下载基于视口大小的最合理的大小,等等。如果我将浏览器窗口(Chrome)调整为较小并刷新页面,则网络选项卡告诉我,它将下载我期望的图像(在本例中为800px),加上最大的图像(我从属性中假设)。 我在使用picturefill.js和不使用picturefill.js的情况下都试过,我在OS X 1

  • 我不熟悉android camera API,代码中调用了PictureCallback,其中包含: 对这一行指出的例外情况是: 因为我是Android世界的新手,我不知道这个环境到底在哪里。getExternalStorageDirectory()指出。 例外说明: JAVA木卫一。FileNotFoundException:/storage/emulated/0 est。jpg:打开失败:EA

  • 我们有修改PDF的代码,然后对修改后的PDF进行数字签名。我们使用iTextSharp库(4.1.6)的LGPL版本对PDF进行数字签名。 这是一个显示问题的示例PDF。PDF最初会打开,但随后会冻结,无法导航。无论您是否安装了我们的证书来验证此签名,问题似乎都会发生。 这个问题似乎没有始终如一地发生,问题只存在于Adobe Reader中。浏览器PDF查看器和Foxit Reader(进行签名验

  • 在我开始这看似很长的一段之前,我想对我可能收到的任何建议/建议表示感谢。朱约翰 我开发了一个简单的测试来帮助我理解spring的声明性(@Transactional)事务管理框架如何与spring的RESTful web服务结合使用。 为此,我开发了以下RESTful控制器: 其中,“tester”是以下服务类的bean,并自动连接到此控制器。类中唯一的方法是事务性的: 在上面,GenericDB

  • 问题内容: 好吧,我试图理解并阅读可能导致它的原因,但我却无法理解: 我的代码中有这个地方: 事实是,当它尝试调用某些方法时,它将引发而不是其他预期的异常(特别是)抛出 。我实际上知道调用了什么方法,所以我直接转到该方法代码,并为应该抛出的行添加了一个块 ,它实际上按预期抛出。然而,当它上升时,以某种方式更改了上面的代码并没有 按预期进行。 是什么原因导致这种行为的?我该如何检查? 问题答案: 通