C #. NET изображения масштабирования проблемы цвета - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь изменить масштаб изображения на лету с помощью c # .net.Казалось, что все работает правильно, но при ближайшем рассмотрении цвета выглядят неправильно.

Код выглядит довольно простым и хорошо масштабируется, но почему исходное изображение выглядит более розовым, чем цветмасштабированное изображение?

using (Bitmap origBitmap = new Bitmap("my_picture.jpg"))
{
    using (Bitmap outputImage = new Bitmap(1024, 768, origBitmap.PixelFormat))
    {
        outputImage.SetResolution(origBitmap.HorizontalResolution, origBitmap.VerticalResolution);
        using (Graphics g = Graphics.FromImage(outputImage))
        {
            g.Clear(Color.Black);
            g.CompositingMode = CompositingMode.SourceCopy;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;

            g.DrawImage(
                origBitmap,
                new Rectangle(0, 0, 1024, 768),
                new Rectangle(0, 0, origBitmap.Width, origBitmap.Height),
                GraphicsUnit.Pixel
            );

            context.Response.ContentType = "image/jpeg";
            outputImage.Save(context.Response.OutputStream, ImageFormat.Jpeg);
        }
    }
}

В приложении вы можете увидеть разницу в цветах.Надеюсь, мне не хватает чего-то простого?

picture_scaling_issues.jpg

1 Ответ

0 голосов
/ 13 октября 2018

Похоже, я ответил на свой вопрос!

using (Bitmap origBitmap = (Bitmap) Bitmap.FromFile("my_file.jpg", true))
{ … }

Параметр "true" предназначен для "useEmbeddedColorManagement".Установка значения true устраняет проблему ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...