获取图片属性的技巧

作者在 2008-05-16 16:36:44 发布以下内容

在网页中图片是不可缺少的部分,有时候需要在网页中获取图片的一些属性,比如高宽等。而这些属性都不能直接获取,所以要用到一些技巧。
1.网页中的图片是在自己网站下的,在cs页面需要获取它的高和宽:
ASPX页面:
 <asp:Image ID="Image1" runat="server" ImageUrl="~/img/03.gif" />
如果在后台想要知道03.gif这张图片的高和宽,直接获取是没有办法获取的、可以用下面的方法来获取:
string path = Server.MapPath(Image1.ImageUrl).ToString();//这里必须是绝对路径,相对路径不成……
 System.Drawing.Image oldImage = System.Drawing.Image.FromFile(path);

//取图片像素
double imageWidth = oldImage.Width;
 double imageHigh = oldImage.Height;
 Response.Write(imageHigh);//输出正确,呵呵…………
2.如果网页上的图片是调用了别的网站上的图片,比如:
aspx页面:
<asp:Image ID="Image1" runat="server" ImageUrl="http://192.168.1.181/img/xbxx.jpg" />
这样用上面的方法就不成了,因为他不支持http这个url,但是用javascript却是可以的(上面的情况当然也可以用这个方法),但是如果要在cs页面用这个属性呢?可以用个隐藏控件,在js里将值赋给隐藏控件,具体如下……
1.先在aspx页面加个隐藏控件
 <input id="Hidden1" type="hidden" runat="server" />  //要加上 runat="server"否则cs页面不认。
2.编写js代码:
    <script language="javascript" type="text/javascript">
   
    function dispOriginalSize(oImg)
{
 iOriginalWidth = oImg.width;
 iOriginalHeight = oImg.height;
  document.getElementById('Hidden1').value=iOriginalHeight;
}
   
    </script>
3.调用js函数:
  protected void Page_Load(object sender, EventArgs e)
    {
              Image1.Attributes.Add("onLoad", "dispOriginalSize(this)");
    }
4.在cs页面获取值:
 string imageHigh = Hidden1.Value.ToString();
  Response.Write(imageHigh);

 

————————————————————
技术日志 | 阅读 2443 次
文章评论,共0条
游客请输入验证码