Mexendo com imagens na programação

Delphi

27/04/2004

Estou desenvolvendo um programa que usará imagens,
eu preciso saber quais as dimensões da imagem e como
redimencioná-la via programação, assim ocupando menos
espaço no banco de dados.
T+
:?: :?: :?:


Eniorm

Eniorm

Curtidas 0

Respostas

Wagnerpb

Wagnerpb

27/04/2004

Caro amigo... aconselho vc a não armazenar as imagens no BD, nós aqui utilizado em uma pasta em um servidor, vá por mim, vai lhe poupar uma boa dor de cabeça com relação a performance do seu BD.


GOSTEI 0
Nigro

Nigro

27/04/2004

Concordo imagina passar o gfix e o gbak em um banco com imagens....


GOSTEI 0
Gandalf.nho

Gandalf.nho

27/04/2004

Tb acho. Esses tempos peguei um sistema interbase que havia desenvolvido com um campo para imagens para alterar. O coitado do banco estava com mais de 100Mb e a máquina não era lá essas coisas. Fiz um programinha para extrair as imagens do banco, salvando-as em formato GIF (eram desenhos simples) e o banco caiu para menos de 20Mb.


GOSTEI 0
Luizfernando777

Luizfernando777

27/04/2004

Prezado colega:
Se por acaso as fotos que vc está pensando em colocar
em Banco de Dados [b:7e01e3e29d]não[/b:7e01e3e29d] forem confidenciais, será melhor colocar em uma pasta, salvando apenas na base o local onde a mesma foi salva,
agora, se for confidencial seria melhor colocalas em DB, mas vc tem que saber que vai ficar enorme a base,

Tenho um projeto que anexa as fotos no Banco,
com certeza está enorme 335 Mb aproximadamente,
mas no meu caso as fotos são confidenciais, não podendo
ficar em pastas simplesmente.


GOSTEI 0
Nigro

Nigro

27/04/2004

Mas uma sugestão...
No caso de fotos confidenciais, podria ser utilizada uma rotina para criptografia dos arquivos, certo?


GOSTEI 0
Eniorm

Eniorm

27/04/2004

Tudo bem, vcs me convencera a usar imagens fora
do banco.
MAS COMO FAZ PARA REDIMENCIONAR A DITA CUJA
T+


GOSTEI 0
Nigro

Nigro

27/04/2004

use o strech


GOSTEI 0
Nildo

Nildo

27/04/2004

Altere a propriedade Streched para True e depois disso altere o Width e o Height do TImage conforme necessário.


GOSTEI 0
Cebikyn

Cebikyn

27/04/2004

Ou se quiser redimensionar a imagem e poder salvar a imagem reduzida, pode usar um dos códigos dos links:

Para JPEG (usar a função ResizeImage, junto com as demais):
http://www.swissdelphicenter.ch/en/showcode.php?id=1896

Para Bitmap:
http://www.swissdelphicenter.ch/en/showcode.php?id=1463


GOSTEI 0
Luizfernando777

Luizfernando777

27/04/2004

caro colega:
se vc mudar o tamanho original da imagem vc vai perder a resolução da mesma, portanto vc terá que salvar em seu tamanho original,
mas acontece o seguinte, a base de dados somente salva em formato .BMP, em formato .JPG ou .JPEG vc não vai conseguir gravar, eis o motivo da base ficar grande.
(caso vc consiga salvar em formato .JPG, me informa como).

fernando


GOSTEI 0
Gandalf.nho

Gandalf.nho

27/04/2004

Dá pra salvar como JPeg, mas não de maneira direta como o BMP. Dê uma busca no fórum que já há vários tópicos mostrando como se faz isso.


GOSTEI 0
Wagnerpb

Wagnerpb

27/04/2004

Ex: Sua imagem original tem 100pixels altura(a´) x 150pixels largura(l´), só que vc tem uma área de 500pixels altura(a´) x 400pixels largura(l´)... aplicando a regra... (a´ * 100)/ a´ = (500 * 100) / 100 = 500¬, significa dizer que vc poderia aplicar 500¬ de aumento na imagem original que ela caberia dentro da sua área disponível, porém, é preciso entender que, o mesmo ¬ de aumento aplicado na altura, deverá ser aplica na largura para a imagem não distorça, sendo assim, 150(l´) * 500¬ = 750pixel, que passa da sua largura disponível que seria 400pixels(l´), nesse caso, vc terá que ir reduzindo o tamanho do percentual de aumento , até que o resultado seja menor ou igual a largura disponível, no exemplo acim, só seria aceito um aumento de 266¬, e a imagem ficaria no seguinte tamanho Altura(266¬) 266pixels x Largura(266¬) 399 pixels...
Dá mais trabalho quando a situação acima acontece, ou seja, o percentual aplicado na altura não pode ser aplicado na largura, nesse caso vc tem que fazer um algoritmo para encontrar o ¬ de aumento que se aplique aos dois casos... espero ter ajudado


GOSTEI 0
POSTAR