1

我正在显示一个在 Windows 7 中看起来不错的透明背景的 PNG,但随后我以 XP 模式或远程桌面运行我的应用程序到 Windows XP 机器,PNG 看起来不正确。我注意到如果我禁用“集成模式”或在没有远程桌面的 XP 上运行应用程序,图像看起来很好。

如何让 DrawImage 在 XP 模式或远程桌面下正确渲染 PNG?

Windows 7 中的图像

替代文字 http://www.freeimagehosting.net/uploads/957bb6ea8b.png

XP Mode 或远程桌面内的图像

替代文字 http://www.freeimagehosting.net/uploads/08f1fbec46.png

这是我的代码:

protected override void OnPaint(PaintEventArgs e)
{
    Image image = Image.FromFile("hello.png", false);
    Bitmap bmp = new Bitmap(image);

    Rectangle destRect = new Rectangle(0, 0, image.Width, image.Height);

    e.Graphics.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
    base.OnPaint(e);
}
4

1 回答 1

2

远程桌面默认运行 16 位颜色,我认为这与 alpha 混合不兼容。如果可能的话,您需要将显示器重新配置为 32 位模式。

于 2010-04-20T20:46:17.007 回答