2010-06-24 44 views
9

有没有办法在C#应用程序中正确显示与alpha通道(让我们说PNG)的图像?谢谢你的任何建议。显示在C中的alpha通道的PNG#

更新:

好的,我的问题有点不庄重。我想要获得alpha通道的真实透明度 - 不能填充父级的背景颜色。在下面的图片中,我们可以看到支持透明度,但位于图片下方的按钮部分不可见。是否有可能有一个图像的alpha通道真正的透明度?

image presenting not-total transparency http://img684.imageshack.us/img684/8804/transpt.jpg

+4

什么类型的应用程序? WinForm的? WPF? html/ASP.NET? html/ASP.NET MVC? Silverlight的? XNA?电话7? Windows Mobile?苹果手机?腕表(微框架)? gtk#(单声道)? – 2010-06-24 11:54:07

+2

“不正确显示”是什么样子? – 2010-06-24 12:57:48

+0

@Marc Gravell - 这是一个标准的C#窗体表单应用程序 @Hans Passant - 很好的提示 - 请参阅UPDATE – rafalry 2010-06-24 13:40:59

回答

3

是,System.Drawing.Image.FromFile( “filename.png”); .NET框架支持多种文件类型的透明度,我不认为它可以用于JPEG,但PNG应该没问题。

6

如果是这样的WinForms则没有。 winforms中的“透明度”不是真正的透明度。

你可以做什么是创建绘制PNG文件并在正确的位置的位置和绑定移动等 alt text http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm(); 
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>); 

//不透明度alphatransparent形式的不透明度,图像将被绘制,值为255 =所有透明部分将与原始PNG等一样多为alpha /透明。

编辑:或转到WPF。