如何将具有透明部分的图像绘制到C#中的Graphics对象?

时间:2010-11-03 21:46:07

标签: c# graphics gdi+ png transparency

我有一个我正在绘制并显示的Graphics对象。这工作正常。不起作用的是绘制带有透明部分的.png图像。我正在通过调用从ImageList控件中绘制这些图像(如果这有什么不同):

myGraphicsObject.DrawImage(myImage, x_position, y_position);

我没有专门为.png图像设置任何透明颜色值,我在控件中找不到任何为控件指定透明颜色的值。

对于图像本身,我尝试在所需的透明部分填充32位(255,0,255),8位(0,0,0)和白色(255,255,255)的透明颜色。但是,绘制时没有透明度。

是否有某种方法告诉图像对指定颜色变得透明?还有其他建议/解决方案吗?

2 个答案:

答案 0 :(得分:0)

值在表单本身,而不是conrols,它被称为TransparencyKey将其设置为winforms设计器中您希望透明的颜色,以及任何等于该颜色的颜色(在您的颜色中)只有表格才会被渲染。

答案 1 :(得分:0)

您的PNG在ImageList上的显示是否正确(透明)?也许您的ImageList设置为24位RGB?改为32位,这应该会有所帮助。