it-roy-ru.com

как я могу получить размер изображения (ш х ч) с помощью потока

У меня есть этот код, который я использую для чтения загруженного файла, но вместо этого мне нужно получить размер изображения, но я не уверен, какой код я могу использовать

HttpFileCollection collection = _context.Request.Files;
            for (int i = 0; i < collection.Count; i++)
            {
                HttpPostedFile postedFile = collection[i];

                Stream fileStream = postedFile.InputStream;
                fileStream.Position = 0;
                byte[] fileContents = new byte[postedFile.ContentLength];
                fileStream.Read(fileContents, 0, postedFile.ContentLength);

Я могу правильно получить файл, но как проверить его изображение (ширина и размер), сэр?

13
Mathematics

Сначала вы должны написать изображение: 

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

и после этого у вас есть: 

image.Height.ToString(); 

и 

image.Width.ToString();

примечание: вы можете добавить проверку, чтобы убедиться, что это изображение было загружено?

34
Rob
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(); 
}
4
Mukund

Считайте изображение в буфер (у вас либо есть поток для чтения, либо байт [], потому что если бы у вас было изображение, у вас все равно были бы размеры).

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

      return image.Size;
   }
}

Затем вы можете пойти дальше и получить размеры изображения:

var size = GetSize(bytes);

var width = size.Width;
var height = size.Height;
1
Thorsten Westheider