Formatar imagem para banco
Alguem poderia me dar uma dica de como eu posso formatar uma imagem?
Como eu poderia carregar uma imagem e deixá-la sempre com um tamanho fixo(bytes)?
Tipo,uma imagem BMP de 800k,codificá-la para JPG até que alcance o tamanho de 100k.
Acho que é um meio de manter o banco(firebird)com tamanho menor possível no campo BLOB.
Como eu poderia carregar uma imagem e deixá-la sempre com um tamanho fixo(bytes)?
Tipo,uma imagem BMP de 800k,codificá-la para JPG até que alcance o tamanho de 100k.
Acho que é um meio de manter o banco(firebird)com tamanho menor possível no campo BLOB.
Vtrx
Curtidas 0
Respostas
Leonardo Xavier
27/09/2012
você tem alguma função realizando a conversão de bmp para jpg?
GOSTEI 0
Alisson Santos
27/09/2012
Primeiramente o que quer fazer, se for mexer com o tamanho o ideal é utilizar um programa para fazer isso pois não perde a qualidade.
Caso seja conversão ai terá que utilizar uma função para fazer essa conversão, lembrando que facilmente consegue na internet essa função.
Agora se for para colocar uma imagem na aplicação poderia utilizar o componente Image e ativar a propriedade Stretch.
Caso não seja nada disso acima, informar o que quer certinho que verifico e oriento.
Caso seja conversão ai terá que utilizar uma função para fazer essa conversão, lembrando que facilmente consegue na internet essa função.
Agora se for para colocar uma imagem na aplicação poderia utilizar o componente Image e ativar a propriedade Stretch.
Caso não seja nada disso acima, informar o que quer certinho que verifico e oriento.
GOSTEI 0
Vtrx
27/09/2012
A função ainda não tenho pois estou programando em C++ (RadStudio),mas estou usando o Delphi como referencia.
Oque eu queria era não 'inchar' o banco de dados no campo BLOLB,pois o cliente vai cadastrar uma imagem para cada íten,que são componentes.
O cliente abe o forme de cadastro e escolhe uma imagem a cadastrar.
Como esta imagem ele vai gerar apartir de uma WebCam ou Camera,preciso limitar o tamanho no banco mas não para o cliente.
Seria uma conversão automática,ele escolhe a imagem e minha rotina comprime até um tamanho determinado.
Oque eu queria era não 'inchar' o banco de dados no campo BLOLB,pois o cliente vai cadastrar uma imagem para cada íten,que são componentes.
O cliente abe o forme de cadastro e escolhe uma imagem a cadastrar.
Como esta imagem ele vai gerar apartir de uma WebCam ou Camera,preciso limitar o tamanho no banco mas não para o cliente.
Seria uma conversão automática,ele escolhe a imagem e minha rotina comprime até um tamanho determinado.
GOSTEI 0
Leonardo Xavier
27/09/2012
Não teria como você salvar estas imagens em uma pasta e gravar no seu banco apenas o caminho da pasta e o nome do arquivo? Não seria mais fácil?
GOSTEI 0
Vtrx
27/09/2012
A respeito da compressão,eu ja consegui.
Sobre gravar o caminho do banco,não é seguro pois para acessar a pasta no PC servidor,qualquer um vai ter acesso para apagar as iamgens ou colocar outra (e serão muitas).
Abrí um tópico na sesão 'firebird' para achar um meio eficas de gravar uma imagem num campo BLOB usando ZEOS,pois nunca gravaei imagens.
Sobre gravar o caminho do banco,não é seguro pois para acessar a pasta no PC servidor,qualquer um vai ter acesso para apagar as iamgens ou colocar outra (e serão muitas).
Abrí um tópico na sesão 'firebird' para achar um meio eficas de gravar uma imagem num campo BLOB usando ZEOS,pois nunca gravaei imagens.
GOSTEI 0
Alisson Santos
27/09/2012
A respeito da compressão,eu ja consegui.
Sobre gravar o caminho do banco,não é seguro pois para acessar a pasta no PC servidor,qualquer um vai ter acesso para apagar as iamgens ou colocar outra (e serão muitas).
Abrí um tópico na sesão 'firebird' para achar um meio eficas de gravar uma imagem num campo BLOB usando ZEOS,pois nunca gravaei imagens.
Sobre gravar o caminho do banco,não é seguro pois para acessar a pasta no PC servidor,qualquer um vai ter acesso para apagar as iamgens ou colocar outra (e serão muitas).
Abrí um tópico na sesão 'firebird' para achar um meio eficas de gravar uma imagem num campo BLOB usando ZEOS,pois nunca gravaei imagens.
Sim referente o que informou qualquer um pode apagar sim, e no banco isso não ocorre.
Mais tem que ser analisado a importancia dessa imagens estar no banco, pois pode deixar o seu banco muito grande e lento.
O ideal é criar uma pasta com permissões o que pode ou não ser feito para que isso não ocorra.
GOSTEI 0
Vtrx
27/09/2012
Eu limitei o tamanho da imagem(10k/JPG),se não me engano,o banco só vai ficar lento se abrir o campo BLOB toda vez.
No meu caso,eu dou um SELECT só nos ítens texto,e o usuário tem a opção de clicar num botão para ver a imagem ou não,neste momento eu dou um SELECT apenas no campo BLOB.
Vou popular o banco todo e fazer os testes.
No meu caso,eu dou um SELECT só nos ítens texto,e o usuário tem a opção de clicar num botão para ver a imagem ou não,neste momento eu dou um SELECT apenas no campo BLOB.
Vou popular o banco todo e fazer os testes.
GOSTEI 0