Проверить размеры загруженного изображения

Я использую asp.net 3.5 и c# на моем веб-сайте. Вот myquestion:

У меня есть кнопка загрузки и asp: изображение на странице. Пользователь может загрузить изображение со своего компьютера, и это изображение будет отображаться в asp:image. Но прежде чем отображать изображение, я хотел бы проверить ширину и высоту загруженного изображения. Как мне это сделать?

6 ответов


    Image img = System.Drawing.Image.FromFile("test.jpg");
    int width = img.Width;
    int height = img.Height;

возможно, Вам потребуется добавить систему.Ссылка на чертеж.

вы также можете использовать FromStream функция если вы еще не сохранили изображение на диск, но глядя на то, как вы используете изображение (просматриваемое Пользователем в элементе управления изображением), я подозреваю, что он уже на диске. Поток к образу может быть или не быть быстрее, чем диск к образу. Возможно, вы захотите сделать некоторое профилирование, чтобы увидеть, какая из них имеет лучшую производительность.


In ASP.NET обычно при загрузке файла используется byte[] или Stream. Ниже, я покажу вам один из способов сделать это, где байт-это байт[] файл загружен. Если вы сохраняете файл fisrt, у вас есть физический файл. и вы можете использовать то, что @Jakob или @Fun Mun Pieng показали вам.

в любом случае, не забудьте удалить экземпляр изображения, как я показал здесь. Это очень важно (другие этого не показали).

  using (Stream memStream = new MemoryStream(bytes))
  {
    using (Image img = System.Drawing.Image.FromStream(memStream))
    {
      int width = img.Width;
      int height = img.Height;
    }
  }

попробуйте следующее:

public bool ValidateFileDimensions()
{
    using(System.Drawing.Image myImage =
           System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream))
    {
        return (myImage.Height == 140 && myImage.Width == 140);
    }
}

загрузите изображение в изображения и проверить размеры serverside?

Image uploadedImage = Image.FromFile("uploadedimage.jpg");
// uploadedImage.Width and uploadedImage.Height will have the dimensions...

попробуйте это:

Stream ipStream = fuAttachment.PostedFile.InputStream;
using (var image = System.Drawing.Image.FromStream(ipStream))
{                    
    float w = image.PhysicalDimension.Width;
    float h = image.PhysicalDimension.Height;
}

попробуйте это.

              public boolean CheckImgDimensions(string imgPath, int ValidWidth , int ValidHeight){  

                 var img = Image.FromFile(Server.MapPath(imgPath));

                 return (img.width == ValidWidth &&  img.height == ValidHeight );
                }

использование:

if ( CheckImgDimensions("~/Content/img/MyPic.jpg",128,128) ){ 
     /// what u want
  }