LAYERDEV

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Convertendo e salvando imagens via código

por Mauricio Junior em 1/1/2011 0


    Olá Internautas, gostaria de mostrar hoje como salvar uma imagem capturada pelo software depois de passada pelo scanner. Não vou mostrar a captura da imagem em si, mas vou mostrar como salvar a imagem do tipo TIF, JPG e PNG.
   
    São métodos simples e ao mesmo tempo com um poder para converter a imagem passada como parâmetro de entrada. Vamos ao código.
    Criei um classe específica chamada Util.cs e dentro dela coloquei o método code 1.1.
   
    /// <summary>
    /// Create a image codec (mimeType)
    /// </summary>
    public static ImageCodecInfo GetEncoderInfo(String mimeType)
    {
        int j;
        ImageCodecInfo[] encoders;
        encoders = ImageCodecInfo.GetImageEncoders();
        for (j = 0; j < encoders.Length; ++j)
        {
            if (encoders[j].MimeType.ToLower() == mimeType.ToLower())
                return encoders[j];
        }
        return null;
    }
    Code 1.1
   
    O método recebe como parâmetro do tipo String o tipo da imagem, por exemplo: image/jpeg, image/tiff e image/png. Esses são os tipos que usei para trabalhar com as imagens que tenho dentro do meu sistema ou que virão.
   
    Antes de tudo, importei as seguintes classes no início da classe. Code 1.2
   
    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Collections.Generic;
    Code 1.2
   
    Ainda dentro da classe Util.cs, utilizei o método que coloca a imagem com uma certa qualidade. Code 1.3
   
    public static EncoderParameters CreateJpegEncoder(int aQuality)
    {
        EncoderParameters encoderParams = new EncoderParameters();
        EncoderParameter encoderParam;
        long[] quality = new long[1];
        quality[0] = aQuality; //0 to 100
        encoderParam = new EncoderParameter(Encoder.Quality, quality);
        encoderParams.Param[0] = encoderParam;
        return encoderParams;
    }
    Code 1.3
   
    Atribuí os parâmetros de Encoder com a qualidade recebida na entrada do método tipo Int. No final retornei o encoder. Para este método (code 1.3) serve para atribuir a uma imagem do tipo GIF, com qualidade passada, de zero a cem.
    Criei outro método  para fazer o mesmo procedimento com a imagem do tipo TIF.], ou seja, a conversão do TIF.
   
    public static EncoderParameters CreateTiffEncoder(EncoderValue CompressionType)
    {
        System.Drawing.Imaging.Encoder _Encoder = System.Drawing.Imaging.Encoder.Compression;

        EncoderParameters _EncoderParameters = new EncoderParameters(1);
        EncoderParameter _EncoderParameter;

        // Save the bitmap as a TIFF file with LZW compression.
        _EncoderParameter = new EncoderParameter(_Encoder, (long)CompressionType);
        _EncoderParameters.Param[0] = _EncoderParameter;
        return _EncoderParameters;
    }
    Code 1.4
   
    Dentro do método (Code 1.4) criei parâmetros; no caso 1 EncoderParameters para comprimir a imagem de forma correta. No final do método, retorno a variável de encoder. Todo o código até agora foi feito em uma classe específica. Pode ser feito um framework pequeno contendo as classe com os métodos e assim ser usado em outros projetos.
   
    Agora vou criar três métodos específicos para salvar a imagem localmente, ou seja, em três tipos de formato diferente como falados anteriormente.
   
    O code 1.5 mostra o método que recebe os dados e salva a imagem recebida em disco.
   
    public static void SaveJPG(Image Imagem, string FileName)
    {
        ImageCodecInfo _imageCodecInfo = Util.GetEncoderInfo("image/jpeg");
        Imagem.Save(FileName, _imageCodecInfo);
    }
    Code 1.5
   
    Todos os métodos seguem o mesmo padrão, muda apenas um dado específico. Veja o code 1.6.
   
    public static void SaveGIF(Image Imagem, string FileName)
    {
        ImageCodecInfo _imageCodecInfo = Util.GetEncoderInfo("image/gif");
        Imagem.Save(FileName, _imageCodecInfo);
    }
    Code 1.6
   
    Por último o formato TIF. Hoje muito usado em empresas financeiras. Code 1.7.
   
    public static void SaveTIF(Image Imagem, string FileName)
    {

        ImageCodecInfo _imageCodecInfo = Util.GetEncoderInfo("image/tiff");
        EncoderParameters EP = Util.CreateTiffEncoder(EncoderValue.CompressionCCITT4);

        Imagem.Save(FileName, _imageCodecInfo, EP);
    }
    Code 1.7
   
    Bom, acredito que tenha chegado à meta. Mostro como salvar imagem em três tipos e utilizando métodos particulares no momento da gravação da imagem. Em um outro artigo publicado anteriormente, mostrei como converter a imagem em Array e o Array em imagem. (Converte a imagem em array e o array em imagem)
   
    Assim, a imagem pode ser gravada em banco de dados caso queira ou então grava-lá localmente.
   
    Espero ter ajudado e qualquer dúvida pode entrar em contato pelo site.
  
voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:


Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Vídeo - Microsoft Surface Sphere
E-mail Carta de Amor - Vírus
Convertendo String para Guid
Enviado email anexado
Vídeo Microsoft Visual SourceSafe Parte III 3/3
Conecte - Os games
Código fonte do livro DESENVOLVENDO WEBSERVICES
Padrão de Codificação
Conhecendo o controle Wizard ASP.NET 2.0
Criando Alias no Pacote
Nova versão iCredCard aprovado pela Apple
Exemplo do livro Programando em C# para Web
Dicas para programar melhor
C# - Da introdução ao primeiro projeto-1
Vídeos para download
Trabalhando com GridView e BoundField escondido
Microsoft Mobile Explorer 3.0
Controle de peso mobile
Exemplo usando try e catch
Aplicativos para Dispositivos Móveis, Usando C#.NET com a ferramenta Visual Studio.NET e com Banco de Dados MySQL e SQL Server
Dell Streak Demo
Montando Menu Dinâmico com Banco de Dados
Microsoft Research Laptop Multi-Touch
Misturando dados
Consultando CEP via WebService
Vídeo do Visual SourceSafe - Parte I
Vídeo - Sistema de Atendimento de Clientes
Windows Phone 7 e DLNA
Vídeo - Themes/Skin/Stylo
Aplicativo para Windows Phone 7 começa
101 Exemplos de Linq
Configurar Style
Importar projetos antigos para o Visual Studio 2010
Trabalhando com LinkButton dentro do Gridview
Criptografando Senha




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...

Promoções de livros móveis .NET

Baixa agora o seu e aprenda a programar....




NETITC