Как избежать размывания с Graphics.DrawImage? - PullRequest
1 голос
/ 09 сентября 2009

Я хочу нарисовать одну картинку поверх другой и отправить ее в 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 без потери каких-либо цветов.

1 Ответ

1 голос
/ 09 сентября 2009

Если исходные изображения имеют большое количество цветов, то сохранение файла в формате Gif может вызвать некоторое сглаживание, поскольку размер палитры уменьшен до 256 цветов.

Требуется ли сохранять файл какGif, или можно попробовать другой формат (например, Jpeg или Png)?

...