2013-05-01 31 views
0

我曾經使用這段代碼來調整上傳圖片的大小,但是當我將生成的圖片與其他網站中的其他圖片進行比較時,我發現它的尺寸很大!我調整了上傳圖片的大小,但它仍然有很大的尺寸

System.Drawing.Image img = System.Drawing.Image.FromFile(MapPath(filePath)); 

      int mediumWidth = 350; 
      int mediumHeight = mediumWidth * img.Height/img.Width; 
      System.Drawing.Bitmap bmw = new System.Drawing.Bitmap(img, mediumWidth, mediumHeight);//resize image 
      bmw.Save(MapPath("~/image/thumb/") + fileName); 
      bmw.Dispose(); 

生成的圖像具有200 KB,但在其他網站也有20 KB ..有我的代碼有問題嗎?

+3

你存儲的位圖對象爲位圖文件(.BMP)。這是未編碼和大。 (即使您重複使用原始文件名,並且它是png或sth:這不會使您的新位圖成爲png)。示例請參閱JpegBitmapEncoder類。 – dognose 2013-05-01 19:45:58

+0

[C# - 創建較小分辨率的同一圖像後圖像大小增加]的可能重複(http://stackoverflow.com/questions/8550159/c-sharp-image-size-increases-after-creating-a-smaller - 分辨率的最-相同-i)的 – mbeckish 2013-05-01 20:02:21

回答

2

您將它保存爲未壓縮的位圖。其他網站可能使用jpeg編碼,這會導致更小的文件大小。

嘗試使用the Save overload which allows specifying encoding代替:

bmw.Save(MapPath("~/image/thumb/") + fileName, System.Drawing.Imaging.ImageFormat.Jpeg); 
相關問題