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 usada nas ferramentas mais antigas do Visual
Studio .NET, como 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, guardá-la 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.
Hoje não veremos em funcionamento, vou só lançar a idéia,
por exemplo: ao pegar uma imagem de upload ou local mesmo, transformei-a em
Array, gravei no banco de dados, XML ou TXT. Depois eu peguei esses
dados em Array e transformei 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, mas ao digitar na ferramenta será sugerido automaticamente. O código abaixo 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();
}
Note que o método retorna um Array de byte.
Já o outro método que faz o inverso:
public static Image ConvertByteArrayToImage(byte[] byteArray)
{
if (byteArray == null || byteArray.Length == 0)
{
return (null);
}
return (Image.FromStream(new MemoryStream(byteArray)));
}
Note que o código acima recebe apenas o byteArray e transforma em imagem. O tipo de
retorno é Image.
Bom, agora basta chamar o código normalmente, veja o exemplo abaixo:
byte[] arrayImagem = ConvertImageToByteArray(SUA_IMAGEM, ImageFormat.Gif);
Depois disso, o código é retornado automaticamente; basta depois inserir no banco de dados.
Para voltar com a imagem, também é simples: faça um select no banco de dados e o retorno em array de byte passo para o outro método.
Image img = ConvertByteArrayToImage(imagem_do_banco);
Bom, eu fico por aqui. Qualquer dúvida pode entrar em contato pelo site.




