sábado, 21 de abril de 2012

Trabalhando com imagem em banco de dados utilizando .NET

Em .NET é possível salvar e recuperar imagens em banco de dados de froma simples, utilizando algumas classes do framework. Seguem abaixo as classes necessárias para criarmos um exemplo:

Classe: Image
Namespace: System.Drawing.Bitmap  
É uma "classe abstrata" que fornece funcionalidades para as classes "Bitmap" e "Metafile"

Classe: Bitmap
Namespace: System.Drawing.Bitmap 
É uma classe utilizada para trabalhar com imagens, ela herda da classe abstrata "Image"

Um bitmap é um formato padrão utilizado pelo windows para "armazenar imagem". Geralmente eles não são compactados, portanto não são indicados para transferência através da internet, Ele consiste, basicamente, em dados de pixel de uma imagem. 

Podemos salvar um bitmap em arquivo em alguns formatos padrões como: BMP, GIF, EXIF, JPG, PNG e TIFF. Para obter mais informações sobre os formatos suportados, consulte Tipos de Bitmaps.

Classe: MemoryStream
Namespace: System.IO.MemoryStream
Classe utilizada para se trabalhar com "stream" em memória

Neste exemplo ela será utilizada para gerar um array de bytes, byte[], que será gravado no nosso banco de dados. O tipo do campo na tabela deverá ser "varbinary[MAX]"
 

OBSERVAÇÃO: Em algumas situações os analistas e desenvolvedores não gravam a imagem no banco de dados e optam por gravar os arquivos físicos das imagens no disco rígido, gravando no banco de dados apenas o "path" da imagem. Se você gravar somente o caminho da imagem em uma tabela do banco de dados, economizará, principalmente, espaço no seu banco de dados


Veja na video-aula abaixo como INSERIR uma imagem em banco de dados:




 

Veja na video-aula abaixo como RECUPERAR uma imagem gravada em um banco de dados e exibí-la em uma aplicação .NET:

2 comentários:

  1. Josue adorei sua video aula, foi bastante explicativa e proveitosa, esta de parabens continue assim, vc ajudar varias pessoas.
    Josue como faço se eu nao quiser adicionar a foto, somente uma descrição ou id. seria assim para explica melhor.
    id=1
    descricao=josue
    foto=null
    Obrigado

    ResponderExcluir
  2. estou usando a parte de recuperar imagem em um banco de dados que uso em sistema feito em visual basic 6 com banco mysql 5.0, mais não estou conseguindo, quando chega na parte abaixo.

    imagem = image.FromStream(ms);

    o image não aparece so aparece o imagem mais ele não tem o fromstream, o que devo fazer?

    ResponderExcluir