Качество изображения не хорошее - PullRequest
0 голосов
/ 13 сентября 2011

Проблема:

Я нашел эту функцию здесь несколько дней назад, но не смог найти ее снова.Он изменяет размеры изображений, но качество вывода не очень хорошее.Похоже, что глубина цвета составляет 8 бит.

Первая фотография - оригинал, вторая - фотошоп, а последняя - с размером:

Образцы:

Resize samples

Функция:

Image ResizeImage(Image original, int targetWidth)
{
    double percent = (double)original.Width / targetWidth;
    int destWidth = (int)(original.Width / percent);
    int destHeight = (int)(original.Height / percent);

    Bitmap b = new Bitmap(destWidth, destHeight);
    Graphics g = Graphics.FromImage((Image)b);
    try
    {

        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.SmoothingMode = SmoothingMode.HighQuality;
        g.PixelOffsetMode = PixelOffsetMode.HighQuality;
        g.CompositingQuality = CompositingQuality.HighQuality;

        g.DrawImage(original, 0, 0, destWidth, destHeight);
    }
    finally
    {
        g.Dispose();
    }

    return (Image)b;
}

1 Ответ

1 голос
/ 13 сентября 2011

Похоже, что изображение на определенном этапе преобразуется в пиксельный формат индексированного цвета.Проверьте эту статью и попробуйте явно установить свойства PixelFormat и Resolution.

...