[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