解决IE下图片缩小失真(有锯齿)的问题

 

首先,这不是一个新鲜玩意儿,很多大牛08年就发现了。

其次,这是个所有IE下普遍都会遇到的问题,而非只针对于IE67。(百度了一下,大半左右的文章是针对于IE67的)。自己为什么不能试一下呢?为什么不能实事求是,实话实说呢?

先说一下:-ms-interpolation-mode:bicubic 为IE7私有属性

interpolation

[ɪnˌtəpəʊˈleɪʃən]
[ɪnˌtɚpəˈleʃən]

n. 窜改;
添写,插补

bicubic

双三次

再说一下:VML滤镜。

VML介绍

VML的全称是Vector Markup
Language(矢量标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量。VML是微软1999年9月附带IE5.0发布的,故只有IE5.0以上版本对VML提供支持。

操作步骤

  1. 页面增加命名空间

  2. 增加CSS样式,如:

    v\:image{behavior:url(#default#VML);width:128px;height:128px;}

  3. 应用CSS样式的DOM,如:<v:image
    src="DSC_0535.JPG"/>

源代码参考

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html
xmlns="http://www.w3.org/1999/xhtml">
<html
xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>无标题文档</title>

<style>
img{ width:300px; height:200px;}
img.ph{-ms-interpolation-mode:bicubic}
v\:image{behavior:url(#default#VML); display:block; width:300px;
height:200px;}
</style>
</head>
<body>
<img src="DSC_0535.JPG" width="2144" height="1424"
/>
<img src="DSC_0535.JPG" width="2144" height="1424"
class="ph" />
<v:image src="DSC_0535.JPG"/>
</body>
</html>

注意事项

  • 使用v:image,所以需要xmlns:v="urn:schemas-microsoft-com:vml";

  • v:image必须指定display:block,否则图片不可见。

  • v\:image必须指定图片宽高,否则图片不可见。
  • 非IE浏览器不支持,图片不可见。

  • 只对同网站的图片有效。对IE6动态跨域名的图片失真依然无效;

  • 不支持getElementsByName以及getElementsByTagName获取dom,通过ID可以。

效果截图:第一幅图为默认样式,第二幅为添加了-ms-interpolation-mode:bicubic,第三幅图为运用了:

IE6,8,9:

IE7的比较明显:

可以看出,第一幅图完全有锯齿,第三幅图虽然没有,但是仿佛加上了“高斯模糊”效果。只有第二幅图既清晰又无锯齿。

至于火狐,opera将2144*1424的照片缩至900*600是看不出锯齿的,但如果缩至300*200仍然会有。chrome和safari则不存在这个问题,完全绝对清晰平滑。效果同IE7下的第二幅图。

ie兼容图片缩小后模糊失真(锯齿)问题的更多相关文章

  1. WPF图片放大后模糊的解决方法

    原文:WPF图片放大后模糊的解决方法 WPF中显示图片的方式很多,可以用Image控件来显示图像,或者直接设置一个控件的Background.图片的放大也很简单,直接设置显示图片的控件的Width和H ...

  2. flash导入图片缩放后出现毛边、失真、锯齿、文字模糊不清晰的情况

    原因: 1.flash的性能非常差,这就不得不让它做大量的优化. 2.图片缩放,目前业界有多种算法,画质越好的算法,计算量越大. 3.flash优化了图片缩放,使用了质量非常低的缩放算法.这个做法,保 ...

  3. WPF_界面_图片/界面/文字模糊解决之道整理

    原文:WPF_界面_图片/界面/文字模糊解决之道整理 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010265681/article/detai ...

  4. C#/.net 通过js调用系统相机进行拍照,图片无损压缩后进行二维码识别

    这两天撸了一个需求,通过 JS  调用手机后置相机,进行拍照扫码.前台实现调用手机相机,然后截取图片并上传到后台的功能.后台接收传过来的图片后,通过调用开源二维码识别库 ZXing 进行二维码数据解析 ...

  5. 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果

    去年盛夏之时,曾写过“小tip: 使用CSS将图片转换成黑白”一文,本文的模式以及内容其实走得是类似路线.CSS3 → SVG → IE filter → canvas. 前段时间,iOS7不是瓜未熟 ...

  6. [转] 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果 ---张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3804 去年盛夏之时, ...

  7. 解决html5 canvas 绘制字体、图片与图形模糊问题

    html5 canvas 绘制字体.图片与图形模糊问题 发生情况 多出现在高dpi设备,这意味着每平方英寸有更多的像素,如手机,平板电脑.当然很多高端台式电脑也有高分辨率高dpi的显示器. canva ...

  8. 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器

    使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...

  9. UIScrollView中图片放大后不居中,或居中后移动有偏差解决办法

    转自:http://blog.sina.com.cn/s/blog_6ae8b50d0100yret.html 问题的描述如下:要显示一张图片,也只需要显示一张图片,该图片可能很大,也可能很小,但是要 ...

随机推荐

  1. 基础知识《十二》一篇文章理解Cookie和Session

    理解Cookie和Session机制 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定 ...

  2. Form表单验证神器: BootstrapValidator

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  3. Android Studio Error:Connection timed out: connect.解决方案

    遇到了这样的错误: Error:Connection timed out: connect. If you are behind an HTTP proxy, please configure the ...

  4. No.1 PyQt学习

    由于项目的原因,要学PyQt了.以下是第一天的学习成果 # -*- coding: utf-8 -*- import sys from PyQt4 import QtGui, QtCore class ...

  5. matplotlib包画基本的图

    画直线图 1.最简单的用法: import matplotlib.pyplot as plt import numpy as np x=np.linspace(-3,3,50) #在(-1,1)范围内 ...

  6. 为什么WAN口IP和外网IP不一样(不一致)?

    正常的网络应该是动态公网ip,也就是路由器里面的WAN口IP与www.ip138.com上面显示的是一致的,不一致的话则说明该网络被电信或者联通做了NAT转发,导致您获取到了一个虚假的IP地址,无法用 ...

  7. SQL 查询结果保存为 临时表

    -- 1. 在使用select into前,可以先做一下判断 if OBJECT_ID('tempdb..#TT')is not NULL drop table #TT -- 2. 查询结果保存为临时 ...

  8. 微信小程序插件内页面跳转和参数传递(转)

    在此以插件开发中文章列表跳传文章详情为例. 1.首先在插件中的文章列表页面wxml中绑定跳转事件. bindtap='url' data-id="{{item.article_id}}&qu ...

  9. LeetCode 18 4Sum (4个数字之和等于target)

    题目链接 https://leetcode.com/problems/4sum/?tab=Description 找到数组中满足 a+b+c+d=0的所有组合,要求不重复. Basic idea is ...

  10. pam和sasl

    这几天使用在Postfix搭建一个Webmail的平台,用户认证这一块最终使用了PAM.想整理一下思路,让自己对PAM有个更加清晰的认识. 1.      PAM的简介 PAM全称是:Pluggabl ...