1

こんにちは、次のコードがあります...独自の画像を生成してワークシートに貼り付けます。背景色が常に青色である理由を教えてください。たとえば、透明または白にするためにそれを変更することはどういうわけか可能ですか? (私は flag.MakeTransparent(); を試しましたが、それも機能しません)

       Bitmap flag = new Bitmap(200,200);
       using (Graphics g = Graphics.FromImage(flag))
        {
            g.DrawString("N", new Font("Verdana", 80, FontStyle.Bold), 
                         new SolidBrush(Color.Black), new PointF(40, 30));
        }
       System.Windows.Forms.Clipboard.SetDataObject(flag, true);
       ws.Paste(range, Type.Missing);  

私が次を使用するとき

       flag.Save("C:\\image.png",System.Drawing.Imaging.ImageFormat.Png);

image.png の背景は透明です...

どうもありがとう!

4

2 に答える 2

2

これは古い投稿への回答であることは知っていますが、他の誰かがGoogleで見つけた場合(私がしたように):

bmp には背景情報が含まれていないため、変換する必要があります。

MemoryStream ms = new MemoryStream(); bmp.Save(ミリ秒、ImageFormat.Png); IDataObject dataObject = new DataObject(); dataObject.SetData("PNG", false, ms); System.Windows.Forms.Clipboard.SetDataObject(dataObject, false);

ソリューションは、完全なソリューションが次のアドレスからコピーされます: http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.dotnet.framework.drawing&tid=64a90f25- 9dd5-4d27-8d69-02993d0a35ed&cat=en_US_fa599017-a9ec-4987-b602-c19ba8e5a4da&lang=en&cr=US&sloc=&p=1

于 2010-01-07T12:45:52.497 に答える
0

最初に画像を埋めてみましたか?

 Image i = new Bitmap(200, 200);
 Graphics g = Graphics.FromImage(i);
 g.FillRectangle(Brushes.Transparent, 0, 0, 200, 200);
于 2009-07-24T17:48:18.377 に答える