在网页中图片是不可缺少的部分,有时候需要在网页中获取图片的一些属性,比如高宽等。而这些属性都不能直接获取,所以要用到一些技巧。
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);