我有一个用自己的alpha混合的png图像文件。现在我想将它加载到移动设备上的表单中。我尝试了很多方法,但没有工作。有没有解决方法?提前致谢。 这是我用来从资源加载图像:C#精简框架:加载一个png alpha混合文件
Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("drawObj.Graph.png");
Bitmap myPNGImg = new Bitmap(stream);
然后创建与图像Graph.png的同样大小的新位图:
Bitmap myBlankImg = new Bitmap(48,48);
Graphics mynewGraph = Graphics.FromImage(myNew);
mynewGraph.Clear(Color.Transparent);
绘制PNG位图:mynewGraph.DrawImage(myPNGImg, 0, 0);
然后这是我从网上:(
Rectangle rectDest = new Rectangle(50,50, 100, 100);
ImageAttributes imgatt = new ImageAttributes();
imgatt.SetColorKey(Color.Transparent, Color.Transparent);
myGraph.DrawImage(myNew, rectDest, 0, 0, 99, 99,GraphicsUnit.Pixel, imgatt);
它的工作原理看,只是清除四个角的图像(圆rectan的somekind的GLE)。图像左侧仍然有一些白色边框。
也许你可以发表一些代码... – 2009-12-08 07:08:21
因为我不熟悉CF和它的图形限制,我只是将它添加为一个评论:通常的来源不需要的“边缘”在一个PNG的阿尔法是创建与反alisasing的PNG。有一篇关于CodeProject的文章(在WinForms中使用LayeredWindow [WS_EX_LAYERED]的上下文中):http://www.codeproject.com/KB/miscctrl/AlphaForm.aspx – BillW 2009-12-08 07:57:35