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.