2009-09-09 64 views
1

我想繪製另一張圖片並將其轉儲到HttpResponse。我的代碼如下所示:如何避免使用Graphics.DrawImage抖動?

//file name points to a gif image 
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(filename); 
System.Drawing.Image smallImage = System.Drawing.Image.FromFile(smallFilename); 

using(Bitmap tempImage = new Bitmap(originalImage)) 
{ 
    Graphics graphics = Graphics.FromImage(tempImage); 
    PointF ulCorner = new PointF(10.0F, 10.0F); 
    graphics.DrawImage(windfarmImage, ulCorner); 
} 

tempImage.Save(Response.OutputStream, ImageFormat.Gif); 

如果我最後一行改爲

tempImage.Save(Response.OutputStream,ImageFormat.Jpeg);

它解決了這個問題。但是我必須得到png。我能以某種方式保持原始文件的調色板嗎?原始文件爲gif,因此應該可以將gif作爲結果,而不會丟失任何我猜測的顏色。

+0

就這樣吧? – 2009-09-09 18:34:01

回答

1

如果源圖像具有大量顏色,則將該文件另存爲Gif可能會導致一些抖動,因爲調色板大小降低爲256色。

是否需要將文件保存爲Gif,或者可以嘗試不同的格式(例如Jpeg或Png)?

+1

原始文件是gif,我必須這樣保留它 – 2009-09-09 18:10:04