【问题标题】:How to avoid dithering with Graphics.DrawImage?如何避免使用 Graphics.DrawImage 抖动?
【发布时间】:2009-09-09 14:24:46
【问题描述】:

我想在另一张图片上绘制一张图片并将其转储到 HttpResponse。我的代码如下所示:

//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 而不会丢失我猜的任何颜色。

【问题讨论】:

    标签: .net drawing dithering


    【解决方案1】:

    如果源图像有大量颜色,则将文件保存为 Gif 可能会导致一些抖动,因为调色板大小会减少到 256 种颜色。

    是否需要将文件保存为 Gif,或者可以尝试其他格式(例如 Jpeg 或 Png)?

    【讨论】:

    • 原始文件是gif,我必须这样保存
    猜你喜欢
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-12
    • 2011-09-21
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多