有没有办法在C#应用程序中正确显示带alpha通道的图像(比方说PNG)?感谢您的任何建议。
更新:
好的,我的问题有点不高兴。我想获得alpha通道的真实透明度 - 不填充父母的背景颜色。在下图中,我们可以看到支持透明度,但是图像下方的按钮部分是不可见的。是否可以实现图像alpha通道的真实透明度?
image presenting not-total transparency http://img684.imageshack.us/img684/8804/transpt.jpg
答案 0 :(得分:8)
如果那是winforms那么没有。 winforms中的“透明度”并不是真正的透明度。
你可以做的是创建一个透明的透明表格,绘制PNG并将其定位在正确的位置并绑定移动等。 http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx
PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm();
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>);
//不透明度是用于绘制图像的不透明度,值为255 =所有透明部分将与原始PNG等一样具有alpha /透明度。
编辑:或转到WPF。
答案 1 :(得分:3)
是,System.Drawing.Image.FromFile(“filename.png”); .NET框架支持多种文件类型的透明度,我不认为它适用于JPEG,但PNG应该没问题。
答案 2 :(得分:0)
以下MSDN链接将有所帮助:
WPF: http://msdn.microsoft.com/en-us/library/aa970062.aspx
视窗: http://msdn.microsoft.com/en-us/library/stf701f5.aspx
关于System.Drawing.Image.FromFile方法:
托管GDI +内置编码器和 支持以下内容的解码器 文件类型:
- BMP
- GIF
- JPEG
- PNG
- TIFF