2011-05-18 195 views
8

我能夠不通過下面的代碼檢查文件大小顯示在圖片框圖片:檢查圖像的寬度和高度

private void button3_Click_1(object sender, EventArgs e) 
{ 
    try 
    { 
     //Getting The Image From The System 
     OpenFileDialog open = new OpenFileDialog(); 
     open.Filter = 
      "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp"; 

     if (open.ShowDialog() == DialogResult.OK) 
     { 
      Bitmap img = new Bitmap(open.FileName); 

      pictureBox2.Image = img; 
     } 
    } 
    catch (Exception) 
    { 
     throw new ApplicationException("Failed loading image"); 
    } 
} 

我要檢查,例如圖像大小是否在顯示在圖片框中之前是2MB或4MB。我也想檢查圖像的寬度高度

回答

28

Bitmap將保存圖像的高度和寬度。

使用FileInfoLength屬性獲取文件大小。

FileInfo file = new FileInfo(open.FileName); 
var sizeInBytes = file.Length; 

Bitmap img = new Bitmap(open.FileName); 

var imageHeight = img.Height; 
var imageWidth = img.Width; 

pictureBox2.Image = img; 
+0

但如何在顯示圖片框 – bharathi 2011-05-18 12:19:02

+0

圖像@bharathi讓我先確認你想在內存或大小尺寸在高度和寬度之前檢查大小? – Devjosh 2011-05-18 12:21:06

+0

@Devjosh - 他想要兩個人。 – Oded 2011-05-18 12:21:51

3
 try 
     { 
      //Getting The Image From The System 
      OpenFileDialog open = new OpenFileDialog(); 
      open.Filter = "Image Files(*.jpg; *.jpeg; *.gif; *.bmp)|*.jpg; *.jpeg; *.gif; *.bmp"; 
      if (open.ShowDialog() == DialogResult.OK) 
      { 
       System.IO.FileInfo file = new System.IO.FileInfo(open.FileName); 
       Bitmap img = new Bitmap(open.FileName); 


       if (img.Width < MAX_WIDTH && 
        img.Height < MAX_HEIGHT && 
        file.Length < MAX_SIZE) 
        pictureBox2.Image = img; 

      } 
     } 
     catch (Exception) 
     { 
      throw new ApplicationException("Failed loading image"); 
     }