2014-11-04 154 views
0

我有掃描文件並保存我的道路代碼:掃描後縮小圖像大小?

public ImageFile Scan() 
    { 
     var device = this._deviceInfo.Connect(); 

     var item = device.Items[1]; 
     var imageFile = (ImageFile)item.Transfer(FormatID.wiaFormatJPEG); 

     return imageFile; 
    } 

    protected void btnscan_Click(object sender, EventArgs e) 
    { 
     foreach (Object scanner in scanners) 
     { 
      if (ddlSelectDevice.SelectedItem.ToString().Equals(scanner.ToString())) 
      { 
       //var d = ddlSelectDevice.SelectedIndex as Scanner; 
       var device = scanner as Scanner; 
       if (device == null) 
       { 

        return; 
       } 

       var image = device.Scan(); 

       var path = "~/Scanner/scan.jpeg"; 
       if (File.Exists(Server.MapPath(path))) 
       { 
        File.Delete(Server.MapPath(path)); 
       } 
       image.SaveFile(Server.MapPath(path)); 
       break; 
      } 
     } 
    } 

我在數據庫中轉換保存此圖片字節:

private byte[] image2Byte() 
    { 
     string filePath = null; 
     Byte[] bytes = null; 

     if (File.Exists(Server.MapPath("~/Scanner/scan.jpeg"))) 
     { 
      filePath = Server.MapPath("~/Scanner/scan.jpeg"); 
      return bytes = File.ReadAllBytes(filePath); 
     } 
     else 
     { 
      filePath = Server.MapPath("~/Scanner/None.jpg"); 
      return bytes = File.ReadAllBytes(filePath); 
     } 

    } 

但我的圖片通常具有大尺寸(可達400KB )並在加載時發生問題。我如何減少圖像大小?

回答

2

您可以使用ImageProcessor降低JPEG文件的質量。 80%的質量適用於大多數使用情況。

using (ImageFactory imageFactory = new ImageFactory(preserveExifData:true)) 
{ 
    imageFactory.Load(inStream) 
       .Quality(80) 
       .Save(outStream); 
} 
+1

[ImageProcessor](http://imageprocessor.org/)FTW +1 – Chris 2014-11-04 16:39:00