2014-11-04 105 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