如何计算图像的高度和宽度

时间:2013-02-15 09:22:17

标签: asp.net c#-4.0

我的服务器端图像控制为:

  <img id="img" runat="server" style="padding-left:20px" 
       src="~/Images/2013-02-14_225913.png" />

我想计算它的高度和宽度。我这样做了:

int iWidth = (int)Math.Round((decimal)img.Width.Value);
int iHeight = (int)Math.Round((decimal)img.Height.Value);

返回-0,而不是实际参数。

我怎样才能得到H&amp; W的图像控制?

3 个答案:

答案 0 :(得分:1)

Bitmap btmp;
string image = "~/Images/2013-02-14_225913.png";
myBitmap = new Bitmap(image);

int height= btmp.Height;
int weight = btmp.Width;

答案 1 :(得分:0)

您的问题不是很明确,因此有两种情况:

  1. 如果您指的是控件的属性,那么只有在.aspx / .ascx文件中实际分配控件的属性时才能获得大小。

    使用了两个单独的类:

    <img id="img1" runat="server" 
        style="padding-left: 20px"
        src="meSepiaLarge.jpg" 
        width="100" height="100" />
    <asp:Image ID="img2" runat="server" 
        ImageUrl="~/meSepiaLarge.jpg"  
        Width="100px" Height="100px" />
    

    img1将在服务器端实例化为System.Web.UI.HtmlControls.HtmlImage,而img2将为System.Web.UI.WebControls.Image。以下是如何获得它们的尺寸。

    int i1Width = (int)Math.Round((decimal)img1.Width);
    int i1Height = (int)Math.Round((decimal)img1.Height);
    
    int i2Width = (int)Math.Round((decimal)img2.Width.Value);
    int i2Height = (int)Math.Round((decimal)img2.Height.Value);
    
  2. 如果您指的是源图片的大小,那么您可以查看kad1r's answer

答案 2 :(得分:0)

你必须将它加载到内存和放大器中。计算高度和宽度

        Bitmap myBitmap = new Bitmap(Server.MapPath("~/images/lightbulb.png"));
        if (myBitmap != null)
        {
            Response.Write("Height:"+ myBitmap.Height + " & width:"+ myBitmap.Width);
        }