检查上传图片的尺寸

chu*_*ese 11 c# asp.net image dimensions

我在我的网站上使用asp.net 3.5和c#.这是我的问题:

我有一个上传按钮和asp:页面上的图像.用户可以从他的计算机上传图像,该图像将显示在asp:image中.但在我显示图像之前,我想检查上传图像的宽度和高度.我该怎么做呢?

Fun*_*eng 23

    Image img = System.Drawing.Image.FromFile("test.jpg");
    int width = img.Width;
    int height = img.Height;
Run Code Online (Sandbox Code Playgroud)

您可能需要添加System.Drawing引用.

FromStream如果你还没有将图像保存到磁盘,也可以使用该功能,但是看看你如何使用图像(用户可以在Image控件中查看),我怀疑它已经在磁盘上了.流到图像可能比也可能不比磁盘到图像更快.您可能希望进行一些分析以查看哪个具有更好的性能.

  • @o_o如果是大图像,请检查`HttpPostedFileBase.ContentLength`属性,以便没有人上传大于1-2兆字节的图像. (3认同)

Shi*_*mar 13

在ASP.NET中,通常在上载文件时使用byte []或Stream.下面,我向您展示了一种方法,其中bytes是上传文件的byte [].如果您要保存文件fisrt,那么您有一个物理文件.你可以用@Jakob或@Fun Mun Pieng给你看的东西.

无论哪种方式,都要确保像我在这里展示的那样处理你的Image实例.这非常重要(其他人没有表现出来).

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


小智 7

请尝试以下方法:

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