how can I get image size (w x h) using Stream

后端 未结 3 1922
伪装坚强ぢ
伪装坚强ぢ 2021-02-04 04:11

I have this code i am using to read uploaded file, but i need to get size of image instead but not sure what code can i use

HttpFileCollection collection = _cont         


        
相关标签:
3条回答
  • 2021-02-04 04:32

    Read the image into a buffer (you either have a Stream to read from or the byte[], because if you had the Image you'd have the dimensions anyway).

    public Size GetSize(byte[] bytes)
    {
       using (var stream = new MemoryStream(bytes))
       {
          var image = System.Drawing.Image.FromStream(stream);
    
          return image.Size;
       }
    }
    

    You can then go ahead and get the image dimensions:

    var size = GetSize(bytes);
    
    var width = size.Width;
    var height = size.Height;
    
    0 讨论(0)
  • 2021-02-04 04:38
    HttpPostedFile file = null;
    file = Request.Files[0]
    
    if (file != null && file.ContentLength > 0)
    {
        System.IO.Stream fileStream = file.InputStream;
        fileStream.Position = 0;
    
        byte[] fileContents = new byte[file.ContentLength];
        fileStream.Read(fileContents, 0, file.ContentLength);
    
        System.Drawing.Image image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(fileContents));
        image.Height.ToString(); 
    }
    
    0 讨论(0)
  • 2021-02-04 04:41

    First you have to write the image:

    System.Drawing.Image image = System.Drawing.Image.FromStream (new System.IO.MemoryStream(byteArrayHere));
    

    and afterwards you have the :

    image.Height.ToString(); 
    

    and the

    image.Width.ToString();
    

    note: you might want to add a check to be sure it's an image that was uploaded?

    0 讨论(0)
提交回复
热议问题