Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ademilson Moreira

Gravar Fotos no Firebird

Recommended Posts

Olá.

Por favor preciso da opnião de você´s

Preciso desenvolver um projeto onde o foco principal á o armazenamento de imagens.

São dados médicos e por isto não é aconcelhável simplesmente gravar as fotos em uma pasta, pois necessita sigilo.

Fiz alguns testes para gravação das imagens no banco, mas notei que ao gravar uma foto por exemplo o banco cresce assustadoramente. Notei também que isto está diretamente ligado a qualidade da imagem, o que não posso perder.

Alguem conhece ou pode me sugerir uma solução?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

 

Olha, assim, eu não possuo conhecimento avançado em BD a ponto de saber como é gravado um arquivo nele.

Mas eu acredito que um arquivo blob é gravado no banco com a quantidade de bytes que ele tem no HD.

 

Por exemplo, se você possui uma foto de 2 megas, serão gravados 2 megas no BD ao inseri-lá nele.

 

Amadurecendo esta tese. O unico meio de nao ocupar tanto espaço no banco de dados, seria compactando a imagem(num zip ou qualquer outro meio) para então grava-lá no BD.

 

Porem isto será vantajoso se você não for efetuar a visualização da imagem constantemente, pois levaremos em consideração que para visualizar a imagem teria de descompactar.. Ação que usaria um processamento para efetuar constantemente.

 

Não sei se este é o meio mais certo, mas é o q me veio na cabeça, agora cabe a você analisar para saber se é a melhor solução para você ou não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa, mas nao entendi.

 

O poder apagar ou não já seria outro assunto a ser tratado...

 

Você criou o topico procurando uma solução para diminuir o tamanho do banco que era grande devido as fotos. A solução que eu pensei foi:

Compactar a foto antes de gravar.

 

Se você no momento esta gravando no banco uma foto bitmap por exemplo, a solução seria compacta-la via codigo e gravar no banco o arquivo compactado.

 

O usuario final nao vai nem imaginar que as fotos estao sendo compactadas, voce irá mudar sua rotina de gravação de imagens no banco, ao invez de gravar a imagem(jpg,bmp,etc) voce irá gravar o formato compactado(zip).

 

E ao querer visualizar a imagem, voce terá de descompactar(via codigo) e mostra-la para o usuario.

 

É ai que entra o processamento pesado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos.

 

Uma solução melhor para isto, seria voce ocultar a pasta de imagens no Windows, ou torná-la como pasta exclusiva somente do Administrador do Sistema, e voce só terá esse previlégio de apontar quais pastas os usuários possam enxergar, somente se o seu perfil de usuário estiver como Administrador.

 

Não sei com a versão ou o sistema operacional que voce usa, pois de Windows XP, para Windows Seven, existem algumas diferenças de onde ir ou começar e confesso que ainda estou aprendendo a mexer com o Windows Seven. Por esta razão, não tem como explicar agora.

 

Se voce ainda preferir armazenar as imagens dentro de um campo na tabela no Banco, este realmente tem que ser do tipo BLOB (Binary Large Objects), isto é se o seu Banco for Firebird ou MySql, e uma outra opção seria converter as imagens em formato Jpeg ou Gif antes de armazenar, que é um formato de compactação mais adequado do que em ZIP, mais mesmo assim, vai depender de como voce está gerando estas imagens, de que tamanho são e de qual resolução é, isto é, quantos pixels per Inch voce está usando.

 

Particularmente eu insisto voce continuar com o sistema de pastas, que ocupa menos espaço do que dentro do banco.

 

O Senhor é meu Pastor e nada me faltará (Sl. 23:01).

 

Jorge da Silva Abreu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como gravar sim, eu ja fiz, esta foi a ideia que eu apresentei, gravar um arquivo compactado(zip) ao invez de uma imagem(bmp).

Tem como fazer usando o ShellExecute. Por exemplo, tem como compactar via linha de comando no cmd do windows. Poderia fazer desta maneira. E tambem há maneiras mais faceis, como componente que ja faz tudo isto.

compactar arquivo Delphi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tranquilo.

 

Cara, eu infelizmente não tenho a classe que fiz para compactação, faz muito tempo e acho que nem tenho em mãos, senão até postava aqui.Mas eu lembro que fiz com a ajuda de um componente chamado VCLZip

 

Da uma olhada no site principal do componente tem varios exemplo lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.