2013-05-29 67 views
0

我寫了一個方法來減少顏色深度(GIF轉換),並將位圖的分辨率設置爲600像素。高分辨率保存System.Drawing.Bitmap aspx

顏色深度轉換工作正常,但分辨率設置不起作用。

<script runat="server" language="C#"> 
    public static void Convert(Bitmap oldbmp, String path) 
    { 
     System.Drawing.Bitmap bm8Bit; 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      oldbmp.Save(ms, ImageFormat.Gif); 
      ms.Position = 0;    
      bm8Bit = (System.Drawing.Bitmap) System.Drawing.Image.FromStream(ms); 
      bm8Bit.SetResolution(600, 600); 
      bm8Bit.Save(path, System.Drawing.Imaging.ImageFormat.Bmp); 
      return; 
     } 
    } 
</script> 

回答

0

我想你只能在新位圖中設置分辨率,即wan't之前保存的,所以如果你已經退出的位圖,你需要將它複製到新的Bitmap實例:

Bitmap imgCopy = new Bitmap(img); 
imgCopy.SetResolution(600.0f,600.0f); 

閱讀這裏:http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspx

使用此方法在新創建的位圖上設置所需的分辨率。更改圖像的分辨率不會改變其物理尺寸。

1

嘿它總是好的嘗試寫我們自己的解決方案,但它們是可用庫,很容易實現和真正偉大的作品

你可能想使用它,你可以從這裏下載它,它也有非常好的文檔。

http://imageresizing.net/download