1

我有服务器端图像控制:

  <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 & W?

4

3 回答 3

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

int height= btmp.Height;
int weight = btmp.Width;
于 2013-02-15T09:35:22.270 回答
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" />
    

    img1System.Web.UI.HtmlControls.HtmlImage在服务器端实例化为 a ,而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 的答案

于 2013-02-15T09:58:49.500 回答
0

您必须将其加载到内存中并计算高度和宽度

        Bitmap myBitmap = new Bitmap(Server.MapPath("~/images/lightbulb.png"));
        if (myBitmap != null)
        {
            Response.Write("Height:"+ myBitmap.Height + " & width:"+ myBitmap.Width);
        }
于 2013-02-15T10:49:30.633 回答