2013-05-20 6 views
11

ich diesen Code habe ich hochgeladene Datei zu lesen verwenden, aber ich brauche stattdessen die Größe des Bildes zu erhalten, aber nicht sicher, welcher Code iwie kann ich die Bildgröße (B x H) Stream mit

kann
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); 

Ich kann die Datei richtig lesen, aber wie überprüfe ich das Bild (Breite und Größe), Sir?

Antwort

32

Zuerst müssen Sie das Bild schreiben:

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

und danach haben Sie die:

image.Height.ToString(); 

und die

image.Width.ToString(); 

Anmerkung: Sie können einen Scheck hinzufügen möchten um sicher zu sein, dass es ein Bild ist, das hochgeladen wurde?

+0

whats Byte-Array Sir :( – Mathematics

+0

Wow .. Ok: byte [] <- Byte-Array - In Ihrem Fall: ' fileContents' – Rob

+11

Hey, leg das in eine 'using' Klausel! –

4
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(); 
} 
1

Lesen Sie das Bild in einen Puffer (Sie haben entweder einen Stream ab oder byte [] zu lesen, denn wenn man das Bild hat man ohnehin die Dimensionen haben würde).

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

     return image.Size; 
    } 
} 

Sie dann weiter und die Bildgrößen gehen:

var size = GetSize(bytes); 

var width = size.Width; 
var height = size.Height; 
Verwandte Themen