在 IE6 中,可以很方便地利用 img 的 src 属性,实现本地图片预览,然而在 IE7 中,这种办法却行不通。需要用 AlphaImageLoader


AlphaImageLoader

说明:

在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。如果载入的是PNG(Portable Network Graphics)格式,则0%-100%的透明度也被提供。

语法:

filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )

enabled:可选项。布尔值(Boolean)。设置或检索滤镜是否激活。
true:默认值。滤镜激活。
false:滤镜被禁止。

sizingMethod:可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。
crop:剪切图片以适应对象尺寸。
image:默认值。增大或减小对象的尺寸边界以适应图片的尺寸。
scale:缩放图片以适应对象的尺寸边界。

src:必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。


具体操作:

  1. 为预览区域(比如要在某个 div 中预览)添加样式:filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);。
  2. 为 AlphaImageLoader 设置 src 属性。

 

示例代码:

<?xml version="1.0" encoding="gb2312"?>
<!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">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>本地图片预览代码(支持 IE6、IE7)</title>
<style type="text/css">
#newPreview
{
    filter
:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
}

</style>
<script type="text/javascript" language="javascript">
<!--
function PreviewImg(imgFile)
{
    
//原来的预览代码,不支持 IE7。
    var oldPreview = document.getElementById("oldPreview");
    oldPreview.innerHTML 
= "<img src=\"file:\\\\" + imgFile.value + "\" width=\"80\" height=\"60\" />";
    
    
//新的预览代码,支持 IE6、IE7。
    var newPreview = document.getElementById("newPreview");
    newPreview.filters.item(
"DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
    newPreview.style.width 
= "80px";
    newPreview.style.height 
= "60px";
}

-->
</script>
</head>

<body>

<p>说明:以下针对的是互联网情况,如果您在本地作测试,比如输入的地址是:http://127.0.0.1/,则可以看到全部预览。</p>

<hr />

<p>如果您使用的是 IE6,则可以看到以下预览;如果您使用的是 IE7,则看不到以下预览。</p>
<div id="oldPreview"></div>

<hr />

<p>不论您使用的是 IE6 还是 IE7,均可以看到以下预览。</p>
<div id="newPreview"></div>

<hr />

<p>请选择一个图片进行预览:<input type="file" size="20" onchange="javascript:PreviewImg(this);" /></p>

</body>

</html>
posted on 2007-06-27 13:33 阿米 阅读(1141) 评论(4)  编辑 收藏 网摘 所属分类: WebDevelop

  回复  引用  查看    
2007-06-28 10:36 | 丁学      
http://www.cnblogs.com/dxef/archive/2007/06/19/788449.html
有办法解决本地获取图片尺寸和大小的问题吗?
  回复  引用    
2008-02-15 18:04 | ip反查域名 [未注册用户]
有办法解决本地获取图片尺寸和大小的问题吗?

我也想知道这个问题??
  回复  引用    
2008-08-14 11:01 | bill22 [未注册用户]
无法获得大小。
  回复  引用    
2008-10-22 16:06 | sikefeg [未注册用户]
FF下怎么改?

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
[推荐职位]上海盛大网络招聘架构师



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: