单系统.绘制,透明像素转动半灰色



我正在使用单声道4.6.1 on,使用system.Drawing我想覆盖这两个图像(IMGUR专辑)。但是完成的结果看起来像这样,第一个图像具有略微白色的色调。在渲染之前设置背景颜色,揭示了卡片映像的透明部分未正确混合。

        const int width = 764;
        const float s = width / 764;
        var cardBack = new Bitmap(@"assets/mHunter.png");
        var cardArt = new Bitmap(@"CardArt/Full/AT_007.png");

        using (var bmp = new Bitmap(cardBack.Width, cardBack.Height, PixelFormat.Format32bppArgb))
        using (var gr = Graphics.FromImage(bmp)) {
            //Draw card art clipped by type
            var clippingRegion = CreateEllipseRegion(s);
            //gr.SetClip(clippingRegion);
            //ctx.drawImage(t, 0, 0, t.width, t.height, 100 * s, 75 * s, 590 * s, 590 * s);
            gr.DrawImage(cardArt, 100 * s, 75 * s, 590 * s, 590 * s);
            //gr.ResetClip();
            gr.DrawImage(cardBack,0, 0);
            bmp.Save("/tmp/result.png", ImageFormat.Png);
        }

事实证明,卡片映像使用索引颜色模式,在使用gimp更改为rgb之后,它现在可以正确融合。

最新更新