2009-07-24 8 views
1

Salut j'ai le code suivant ... où je génère ma propre image et coller dans la feuille de calcul Excel, pouvez-vous me dire pourquoi sa couleur de fond est toujours BLEU? est-il possible de changer cela par exemple pour le rendre transparent ou blanc? (Je l'ai essayé flag.MakeTransparent(), mais il ne fonctionne pas non plus)insérer sa propre image sur excel par C#

 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); 

quand je l'utilise

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

le image.png a fond transparent ...

merci beaucoup!

+0

Besoin d'informations ici, comment faites-vous l'image? Est-ce juste ce nouveau Bitmap (200, 200) ou faites-vous plus de choses? L'arrière-plan de l'image est-il également bleu ou la feuille de calcul? – SpaceghostAli

+0

image de fond quand il est collé sur la feuille de calcul Excel est BLEU, il est seulement nouveau Bitmap (200,200) ... –

+0

Essayez coller l'image dans mspaint pour voir à quoi il ressemble? Si ce n'est pas sur fond bleu, il se peut que l'image collée dans Excel soit sélectionnée - essayez de la désélectionner. – shahkalpesh

Répondre

0

Avez-vous essayé de remplir l'image en premier?

Image i = new Bitmap(200, 200); 
Graphics g = Graphics.FromImage(i); 
g.FillRectangle(Brushes.Transparent, 0, 0, 200, 200); 
+0

il a toujours le fond BLEU ... –

2

Je sais que c'est la réponse à un ancien poste, mais au cas où quelqu'un d'autre trouve sur Google (comme je l'ai fait):

Le bmp ne contient pas d'informations de fond, donc il doit être converti :

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

La solution est copiée à partir de cette adresse, où la solution complète est: 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

+0

gentil. bien que la prochaine fois, sélectionnez le code et le formater. –

Questions connexes