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

(Resolvido) Salvar Foto de um TImage com tamanho menor


robinhocne

Pergunta

Pessoal eu utilizo hoje o codigo abaixo para salvar a Imagem no banco de dados Firebird......

procedure TFrmNovProdutos.GravarImagem;
var
  msFoto: TMemoryStream;
begin

  if CaminhoFoto = '' then
    begin
      exit;
    end;

  msFoto := TMemoryStream.Create;
  Foto.Picture.Graphic.SaveToStream(msFoto);
  msFoto.Position := 0;

//  IBTransaction1.StartTransaction;

  with DtmLoja.QryProdutos do
    begin
      close;
      Sql.Clear;
      Sql.Add('update Produtos SET Imagem = :ParFoto Where Codigo =' + QuotedStr(TxtCod.Text));
      Prepare;
      ParamByName('ParFoto').LoadFromStream(msFoto, ftBlob);
      ExecSql;
    end;

end;

.... o que eu quero é por exemplo se eu carrego uma imagem de uns 2 mb, na hora de salvar eu queria deixar ela mais pequena deixar tipo com uns 50 kb ou até em menos, mas que a imagem não fica ruim.

:blink:

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

4 respostass a esta questão

Posts Recomendados

  • 0

voce deve fazer compressão da imagem

exemplo:

uses JPEG;

procedure TForm1.Button1Click(Sender: TObject); 
var 
  jpg : TJPEGImage; 
begin 
  jpg := TJPEGImage(Image1.Picture.Graphic); 
  if jpg.CompressionQuality <= 50 then 
  begin 
    ShowMessage('Imagem compactada!'); 
    Exit; 
  end; 

  jpg.CompressionQuality := 50; 
  jpg.Compress; 
  jpg.SaveToFile('c:\teste.jpeg'); 
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
voce deve fazer compressão da imagem

exemplo:

uses JPEG;

procedure TForm1.Button1Click(Sender: TObject); 
var 
  jpg : TJPEGImage; 
begin 
  jpg := TJPEGImage(Image1.Picture.Graphic); 
  if jpg.CompressionQuality <= 50 then 
  begin 
    ShowMessage('Imagem compactada!'); 
    Exit; 
  end; 

  jpg.CompressionQuality := 50; 
  jpg.Compress; 
  jpg.SaveToFile('c:\teste.jpeg'); 
end;

abraço

Jhonas gostei dessa opção, vai ser util também, mas eu estava querendo também redimensionar a imagem para 180x180, pois creio que ai fica melhor ainda, mas não muito perder a qualidade dela, e já salvar no banco de dados.

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas gostei dessa opção, vai ser util também, mas eu estava querendo também redimensionar a imagem para 180x180, pois creio que ai fica melhor ainda, mas não muito perder a qualidade dela, e já salvar no banco de dados.

Se voce não percebeu, quando voce faz compressão da imagem, ela diminue de tamanho

voce controla o nivel de compressão nesse comando

jpg.CompressionQuality := 50;

uma imagem de 1.5 Mb pode ficar com 50 Kb sem perder muito a definição

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Jhonas gostei dessa opção, vai ser util também, mas eu estava querendo também redimensionar a imagem para 180x180, pois creio que ai fica melhor ainda, mas não muito perder a qualidade dela, e já salvar no banco de dados.

Se voce não percebeu, quando voce faz compressão da imagem, ela diminue de tamanho

voce controla o nivel de compressão nesse comando

jpg.CompressionQuality := 50;

uma imagem de 1.5 Mb pode ficar com 50 Kb sem perder muito a definição

abraço

Ok, resolvido, Obrigado Jhonas......

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...