Ir para conteúdo
Fórum Script Brasil
  • 0

Diminuir Tamanho De Imagem.(resolvido)


schaukoski

Pergunta

Olá..

Estou com dúvidas sobre isto.

Eu tenho uma imagem, em uma variável Image, do tipo TBitmap, .

O que tem nessa variável foi capturado de uma WEBCAM, ou seja, não sei o valor de tamanho dela.

Como ela estava vindo muito grande ( creio que 360x120 ), eu resolvi dar um STRETCH = True, para fikar do tamanho do meu DBImage que não é muito grande.

Mas isto não resolve, porque ele diminui certinho para o tamanho do DBImage que eu tenho, mas o tamanho dela quando salvo no BD ainda é muito grande. (255kbts).

Como Diminuir o tamanho dela quando ela está na variavel Image?

Vou usar um método de explicação que normalmente funciona... Um Tipo exemplo:

Image.Resizeto.100x80;

Obrigado pela atenção!, Até mais!

Editado por schaukoski
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Opa

schaukoski isso já foi discutido inclusive em tópicos seus...

Nesse post do Micheus já está explicando como fazer isso...

Repare o seguinte no post do Micheus...

MakeThumbNail(Image1.Picture.Graphic, BmpDst, 100, 100);

Make = Fazer

Thumbnail = Miniatura

aSource = Imagem original

aDest = Imagem redimensionada

iWidth = Comprimento

iHeigth = Altura

então do jeito que você diz seria:

MakeThumbNail(Image1.Picture.Graphic, BmpDst, 100, 80);

Agora BmpDst está no tamanho 100x80 e com certeza está

com seu tamanho reduzido...

Entendeu?

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Ah! Sim desculpe.

Eu não intendi muito bem.

Então eu adiciono essa procedure no meu form.

Aí, como que eu chamo a procedure? como que eu falo pra ele redimencionar?

makethumbnail; ?

image1.assign(aDest);

A pergunta é como que eu chamo o thumbnail? , Obrigado.

Desculpe, eu pderia usar, em vez dessa procedure toda, apoenas um aDest.Canvas.StretchDraw?

por exemplo

minhaimagem.canvas.stretchdraw(110,100); ?

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Resolvido!

Eu resolvi meu problema assim:

aDest:= tbitmap.create;
aDest.Width := 121;
aDest.Height := 97;
aDest.Canvas.StretchDraw(Rect(0, 0, aDest.width, aDest.Height), image);
Eu estava tentando com o seguinte código e não dava de jeito nenhum :
aDest:= tbitmap.create;
aDest.Canvas.StretchDraw(Rect(0, 0, 121, 97), image);

Porque será? estranho, pra mim , não é a mesma coisa?! hehe Obrigado!

Editado por schaukoski
Link para o comentário
Compartilhar em outros sites

  • 0
aDest:= tbitmap.create;
aDest.Width := 121;
aDest.Height := 97;
aDest.Canvas.StretchDraw(Rect(0, 0, aDest.width, aDest.Height), image);
Eu estava tentando com o seguinte código e não dava de jeito nenhum :
aDest:= tbitmap.create;
aDest.Canvas.StretchDraw(Rect(0, 0, 121, 97), image);

Porque será? estranho, pra mim , não é a mesma coisa?! hehe Obrigado!

Não, não é a mesma coisa.

Quando você cria o bitmap (TBitmap.Create) ele tem as dimensões 0x0 e sempre que você desenha(usa o canvas) algo além do tamanho do bitmap, o excesso pode ser truncado (depende da propriedade autostretch), mas neste caso não teria jeito mesmo.

Para o seu caso (desenhar no bitmap após criá-lo) você tem que definir o tamanho dele configurando sua largura(Width) e altura(Height). Quando você carreta a imagem de um arquivo ou faz o assign, isto não é necessário porque estes métodos se encrarregam de fazer isso.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...