2013-02-15 2 views
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 контроля изображения?

+0

Если 'img' имеет класс' Image', просто 'img.Height' должно дать вам высоту пикселя в целых числах. –

+0

Вы пытаетесь получить размер элемента управления или реальный размер изображения? –

+0

В качестве примечания объект 'img' не будет иметь свойств' .Value', поскольку он создается на сервере 'System.Web.UI.HtmlControls.HtmlImage' на стороне сервера. Если бы вы использовали '', тогда у класса была бы bee 'System.Web.UI.WebControls.Image', которая имеет свойства' .Value'. –

ответ

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

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

Спасибо. Это сработало. Но проблема заключается в пути изображения с другого сайта, а не из приложения. скажем, что путь: http: //xyz/subsite/folder/img1.jpg, поэтому, когда мы берем этот путь, он выдает ошибку. Как мы можем создать объект bitmap, используя этот путь/изображение. –

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.

+0

Спасибо. Ответ Кадрина работал. Но проблема заключается в пути изображения с другого сайта, а не из приложения. скажем, путь: xyz/subsite/folder/img1.jpg, поэтому, когда мы берем этот путь, он выдает ошибку. Как мы можем создать объект bitmap, используя этот путь/изображение –

0

Вы должны загрузить его в память & высота рассчитайте & ширина

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

Спасибо! Он работал с растровым изображением. –

+0

Спасибо. Это сработало. Но проблема заключается в пути изображения с другого сайта, а не из приложения. скажем, что путь: http: //xyz/subsite/folder/img1.jpg, поэтому, когда мы берем этот путь, он выдает ошибку. Как мы можем создать объект растрового изображения, используя этот путь/образ –

Смежные вопросы