2009-09-09 66 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