我有一個用自己的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