Dev (Back & Front)ARTIGO

Converte Imagem em Array e Array em Imagem

           Olá pessoal, hoje eu gostaria de
mostrar duas funcionalidades legais que precisei em um certo desenvolvimento.
Acredito que é de grande valia

Requisitos:

Visual Studio .NET 2008

Linguagem: C#

 

Essa funcionalidade
pode ser usado nas ferramentas mais antigas do Visual Studio .NET, por exemplo:
2003 e 2005; ainda não testei mas não vejo nenhuma restrição.

 

            Em
resumo, o que mostro é como transformar uma imagem em Array, guardar a mesma em
um local e depois transformar em imagem novamente. Em breve vou escrever um
artigo que visualiza imagem do tipo TIF na web e vou usar esse código ensinado
hoje.

 

            No
caso não mostro hoje em funcionamento, só lanço a idéia, por exemplo: ao pegar
uma imagem de upload ou local mesmo, transformei ela em Array, gravei no banco
de dados, XML ou TXT. Em momento posterior peguei esses dados em Array e
transforme na imagem novamente.

 

            Com
esse decreto do governo brasileiro de economizar papel e transformar tudo em
digital, o que mostro hoje pode ter grande valia para projetos futuros.

 

É importante
importar a classe System.Drawing.Imagem
antes de qualquer coisa. Bem que, ao digitar na ferramenta será sugerido
automaticamente. A referência 1.1 mostra essa conversão de imagem para
ByteArray, passando dois parâmetros, a imagem e o formato.

 

 

 

public static byte[] ConvertImageToByteArray(Image image, ImageFormat
imageFormat)

        {

            if
(image == null)

                return
null;

 

            MemoryStream
ms = new MemoryStream();

            image.Save(ms, imageFormat);

            return
ms.ToArray();

        }

 

Referência: 1.1

 

            Note
que o método retorna um Array de byte.

            Já
o outro método que faz o inverso. Referência 1.2

 

 

 

 

 

public static Image ConvertByteArrayToImage(byte[] byteArray)

        {

            if
(byteArray == null || byteArray.Length == 0)

            {

                return
(null);

            }

 

            return
(Image.FromStream(new
MemoryStream(byteArray)));

        }

 

Referência: 1.2

 

            Note
que o 1.2 recebe apenas o byteArray e transforma em imagem. O tipo de
retorno é Image.

 

Bom, eu fico por aqui e no
próximo artigo sobre imagem eu mostro um exemplo real. Qualquer dúvida, pode
entrar em contato através do site.

 

Mauricio Junior

www.mauriciojunior.org

blog.mauriciojunior.org

Com mais de 20 anos trabalhando no mercado de tecnologia. Mestre em Engenharia Elétrica voltada para o mundo mobile, com mais de 20 livros publicados e cerca de 700 artigos publicados com intuito de ajudar àqueles que querem aprender a programar (site, software, desktop, serviços, api e mobile). Site pessoal: https://www.mauriciojunior.net - MVP, MCAD, MCP Microsoft

Ver perfil