C# - Converter uma imagem para outro formato

Hoje vou apresentar um pequeno program que converte uma imagem para outro formato.

Nosso programa feito na linguagem C# permite converter uma ou mais imagens para um formato especificado.

O programa possui apenas um formulário que é exibido a seguir:

Basta selecionar uma ou mais imagens no mesmo formato , a seguir selecionar o formato de saida e a pasta de destino e clicar no botão Converter Imagens.

Vejamos a seguir os principais códigos usados no programa.

No início do formulário definimos um array de strings para armazenar as imagens selecionadas:

List<string> lista = new List<string>();
string resultado="";

No evento Click do botão para selecionar imagens temos o código abaixo:

        private void btnProcurar_Click(object sender, EventArgs e)
        {
            lbImagens.Items.Clear();
            lista.Clear();
            openFileDialog1.Multiselect = true;
            openFileDialog1.Filter = "Bmp image(*.bmp)|*.bmp|" + "Jpg image(*.jpg)|*.jpg|"
                + "Png image(*.png)|*.png|" + "Gif image(*.gif)|*.gif|" + "Emf image(*.emf)|*.emf|" 
                + "Exif image(*.exif)|*.exif|" + "Icon image(*.ico)|*.ico|" +
                "Wmf image(*.wmf)|*.wmf|" + "Tiff image(*.tiff)|*.tiff|" + "Todos os Arqs.(*.*)|*.*";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string[] info = openFileDialog1.FileNames;
                foreach (string s in info)
                {
                    lbImagens.Items.Add(Path.GetFileName(s));
                    lista.Add(s);
                }
            }
       }

O código para definir a pasta de destino é visto a seguir :

        private void btnPastaDestino_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                resultado = folderBrowserDialog1.SelectedPath;
                lblDestino.Text = resultado.ToString();
            }
            btnConverter.Enabled = true;
        }

Na propriedade Items do controle cboFormatoImagem especificamos os formatos que podem ser selecionados.

No evento Click do botão para converter imagens temos o código que vai realizar a conversão:

       private void btnConverter_Click(object sender, EventArgs e)
        {
             string str="";
             int f = 0;
             int total = lbImagens.Items.Count;
             if (cboFormatoImagem.SelectedIndex >= 0  && total > 0 )
             {
                 str = cboFormatoImagem.Items[cboFormatoImagem.SelectedIndex].ToString();
                 string path = "";
                 foreach (string s in lista)
                 {
                     Image img = Image.FromFile(@s);
                     path = resultado + "\\" + Path.GetFileNameWithoutExtension(s) + "." + str.ToLower();
                     try
                     {
                         switch (str)
                         {
                             case "Bmp":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Bmp);
                                 break;
                             case "Jpg":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Jpeg);
                                 break;
                             case "Gif":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Gif);
                                 break;
                             case "Png":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Png);
                                 break;
                             case "Emf":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Emf);
                                 break;
                             case "Exif":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Exif);
                                 break;
                             case "Ico":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Icon);
                                 break;
                             case "Wmf":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Wmf);
                                 break;
                             case "Tiff":
                                 img.Save(@path, System.Drawing.Imaging.ImageFormat.Tiff);
                                 break;
                         }
                     }
                     catch (Exception ex)
                     {
                         MessageBox.Show("Erro : " + ex.Message);
                         return;
                     }
                     f++;
                 }
                 lblmsg.Text = f.ToString() + " Imagem(ens) Convertida(s) com Sucesso !!!";
             }
             else
             {
                 MessageBox.Show("Selecione o formato de sáida ou selecione uma imagem para converter ! !",
 "*** Alerta ***", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                 cboFormatoImagem.Select();
                 cboFormatoImagem.Focus();
             }
        }

Você pode melhorar o programa em diversos aspectos treinando assim suas habilidades na linguagem C#.

Pegue o código completo aqui:  ConverteImagem.zip

"Todas as coisas são puras para os puros, mas nada é puro para os contaminados e infiéis; antes o seu entendimento e consciência estão contaminados.
Confessam que conhecem a Deus, mas negam-no com as obras, sendo abomináveis, e desobedientes, e reprovados para toda a boa obra."

Tito 1:15,16

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti