2010-10-11 5 views
2

J'ai une image au format JPEG, avec un fond blanc et un cercle noir.Comment puis-je convertir une image JPEG en une image PNG avec un arrière-plan transparent?

Comment est-ce que je peux transformer cette image au format PNG que le fond blanc sera transparent et que le noir restera là? Je suis aussi un programmeur, et s'il y a des idées dans le code C#, je serai très heureux. Aussi, je suis à la recherche d'un convertisseur, d'un outil, d'un programme quelconque.

Merci.

Jeff

+0

Tout éditeur d'image raisonnable (par exemple Paint.NET) serait capable de le faire. Avez-vous réellement besoin de code? –

+0

Je n'ai pas vraiment besoin de code, je veux juste que l'arrière-plan soit transparent, peu importe comment et avec quel outil. –

Répondre

8

Cela fonctionne, mais la solution est lente. Vous pouvez l'accélérer en utilisant Bitmap.LockBits().

using (Image img = Image.FromFile(filename)) 
using (Bitmap bmp = new Bitmap(img)) 
{ 
    for (int x = 0; x < img.Width; x++) 
    { 
     for (int y = 0; y < img.Height; y++) 
     { 
      Color c = bmp.GetPixel(x, y); 
      if (c.R == 255 && c.G == 255 && c.B == 255) 
       bmp.SetPixel(x, y, Color.FromArgb(0)); 
     } 
    } 
    bmp.Save("out.png", ImageFormat.Png); 
} 
+0

hmm, que dois-je importer pour utiliser 'Image', 'Bitmap' et 'Couleur'? –

+0

Vous aurez besoin de faire référence à System.Drawing.dll – ironic

+0

Oui, c'était une question à part entière de la mienne ... –

1

Vous pouvez utiliser l'outil ImageMagicklike this example.

Vous devez définir l'option -background-transparent, définissez l'option -alpha-set et utilisez l'option -transparent pour définir la couleur que vous voulez être transparent interprétés comme de. Voir aussi le convert tool reference.

Questions connexes