[firebase-br] Sugestão para Blobs Compactos

eduardo eduardo em icontroller.com.br
Sex Ago 5 11:54:43 -03 2005


A regra é: o BLOB aceita qualquer coisa. Não transforma nada.
Se você der um TBlobField.LoadFromFile, vai salvar o arquivo Jpg. Se vc 
carregar o arquivo num TImage e salvar o picture do TImage, talvez 
(nunca fiz isso), pode ser que vá no formato BMP, mas acho que não, pois 
o próprio TImage transforma para TJPGPicture.
De qualquer forma, acho prudente ter uma rotina que trate a foto e a 
reduza para um tamanho máximo, dependendo das necessidades do Sistema 
(para fotos, reduzo a 120x160 pixels para manter a proporção de 3x4). O 
propósito deta redução é minimizar o tráfego de rede e o consumo de 
memória pelo sistema, especialmente se houver acesso remoto, para não 
queimar banda com imagens super enormes (>1MB) para exibir uma simples 
foto 3x4. Quando não fazíamos isso, freqüentemente os clientes 
reclamavam de demora em carregar fotos e quando íamos ver, eles tinham 
tirado fotos em câmeras digitais na maior resolução e tamanho possíveis, 
chegando a uma foto ter em torno de 2MB.

[]s Eduardo


eduardo wrote:
> Oi Enio
> 
> Como vc dise, Jpg já é compacto. Não se ganha prarticamente nada com 
> isso. O que se pode fazer para ganhar espaço e agilidade é ter uma 
> rotina que lê o arquivo do disco e a reduz (Stretch) para um tamanho 
> máximo. No meu caso utilizo 120x160 pixels (proporcional a 3x4) o que 
> resulta em imagens entre 5 e 16 kb dependendo da resolução da imagem. O 
> problema não é só o banco crescer, mas o tráfego de rede que isso gera. 
> O pessoal armazena imagens de câmera digital, muitas vezes maior que 
> 1MB. Colocando fora do banco vc previne o banco de crescer, mas não o 
> peso de transitar pela rede e consumir memória para exibir imagens tão 
> grandes.
> 
> []s Eduardo
> 
> 
> 
> .:. Enio Marconcini .:. 1010011010 .:. wrote:
> 
>> Salve!
>> Galera, muito e muito eu vejo pessoas com problemas para armazenas 
>> imagens (ou outros arquivos) em campos blobs no IB/FB, eu mesmo já 
>> suei a testa com isso, dai resolvi abandonar e gravar apenas os paths 
>> das imagens.
>>  Num forum, um carinha disse que, ao ser gravada, imagem JPG acaba 
>> ficando grande etc. Então logo se nota que o tamanho do banco só tende 
>> a engordar.
>>  Me passou na cabeça uma coisa que talvez resolva, mas precisa testar, 
>> eu ainda não implementei, apenas me surgiu a ideia.
>>  Se antes de gravar o blob no banco, compactar o arquivo? Se bem que 
>> imagens JPG quase não tem redução num processo de compactação.........
>>  Nos links abaixo tem um código para usar no Delphi uma tal zLib.pas 
>> para compactar, quem sabe se compactar a imagem, e logo após gravar no 
>> banco esse arquivo compactado, talvez teria um resultado satisfatório.
>>  Compactação Utilizando zLib
>> http://forum.clubedelphi.net/viewtopic.php?t=65509&highlight=zlib
>>  Zipar sem ZipMaster
>> http://forum.clubedelphi.net/viewtopic.php?t=61329&highlight=zlib
>>  Eu ando meio enrolado e não tenho tempo pra testar isso, e mesmo por 
>> enquanto não vou precisar de nada parecido como gravar imagens no banco.
>>  Então, deixo ai uma sugestão para que alguma pessoa que esteja 
>> precisando disso possa tentar e ver os resultados.
>>  Não estou esperando que alguém implemente essa idéia pra me devolver 
>> o cod, é apenas uma sugestão, se servir, viva o Delphi e o Firebird.
>>
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista