Imagem com fundo transparente

Este artigo mostra de forma simples como converter uma cor sólida em transparência com C#.

O código do exemplo converte todos os pixels da cor branca para transparência e salva a imagem em PNG com fundo transparente.


using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace WhiteToTransparent
{
 class Program
 {
 public static void Main(string[] args)
 {

 Color replaceColor = Color.White;

 foreach(String f in args)
 {
 FileInfo file = new FileInfo(f);
 if (file.Exists)
 Convert(file, replaceColor);
 }

 Console.Write("Press any key to continue . . . ");
 Console.ReadKey(true);
 }

 public static void Convert(FileInfo file, Color replaceColor){
 Bitmap originalBmp = (Bitmap)Bitmap.FromFile(file.FullName);

 Int32 colunas = originalBmp.Width;
 Int32 linhas = originalBmp.Height;

 Bitmap bmp = new Bitmap(colunas, linhas);

 for(Int32 y = 0; y < linhas; y++){
 for(Int32 x = 0; x < colunas; x++){
 Color pixel = originalBmp.GetPixel(x, y);
 if ((pixel.R != replaceColor.R) && (pixel.G != replaceColor.G) && (pixel.B != replaceColor.B))
 bmp.SetPixel(x, y, pixel);
 }
 }

 bmp.Save(file.FullName.Replace(file.Extension, "_t" + file.Extension), System.Drawing.Imaging.ImageFormat.Png);

 }
 }
}

Forma de execução:

WhiteToTransparent.exe [nome_do_arquivo]

Fica como promessa realizar um algoritmo mais elaborado que substitui a cor principal e seus tons para graduações de transparência e publicá-lo aqui.

Para quem deseja apenas trocar a cor branca para fundo transparente segue o programa para download já compilado juntamente com  o código fonte WriteToTransparent.

Helvio Junior

Helvio Junior

Gerente de Infraestrutura de TI e Telecomunicações em Fael, uma empresa do grupo Apollo Global
Especialista em redes e segurança de sistemas pela PUC-PR, consultor de redes e segurança da informação. CEO e CTO da SafeTrend, com um produto de single sign-on e gestão de identidades e acessos. Especialista em Segurança da Informação, Controle de Acesso, ambientes e ferramentas de segurança, telefonia VoIP com Asterisk, administração de redes em ambientes híbridos e realização de penetration test (pentest).
Helvio Junior

Últimos posts por Helvio Junior (exibir todos)

1 responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *