Растровый объект превращает RGB (13,11,12) в RGB (211,211,211)? - PullRequest
0 голосов
/ 13 декабря 2010

Хорошо, это странно.Огромный реквизит человеку, который знает это.

У меня есть этот код, который обрезает часть изображения и помещает его в bmpCropped.

    void CropImage()
    {
        int W = nowX - StartX;
        int H = nowY - StartY;

        if (W > 0 && H > 0)
        {
            bmpCropped = new Bitmap(W, H);
            Graphics gfxCropped = Graphics.FromImage(bmpCropped);
            gfxCropped.DrawImage(bmpOriginal, new Rectangle(0, 0, W, H), new Rectangle(StartX, StartY, W, H), GraphicsUnit.Pixel);
        }
    }

По какой-то странной причине всецвета, которые имеют значения RGB R: 13, G: 11, B: 12, изменяются на R: 211, G: 211, B: 211.Обратите внимание на DrawImage?На экране отображается bmpCropped, где я вообще не вижу 211 211 211.Но если я сохраню изображение с помощью bmpCropped.Save (...), я увижу 211,211,211.

У любого есть какие-либо подсказки о том, почему и как это происходит, и могу ли я обойти эту проблему без измененияпиксель другого цвета?

1 Ответ

2 голосов
/ 13 декабря 2010

Звучит так, как будто у вас есть прозрачное исходное растровое изображение с использованием ключа прозрачности. Цвет фона пункта назначения отображается сквозь прозрачные пиксели.

...