[firebase-br] gravar JPEG numa tabela firebird

Simone simone em mithsan.com.br
Seg Jul 30 11:35:54 -03 2007


Fabinho, Tive esse problema também, e consegui da seguinte forma:
Tenho um campo "FOTO....Blob.....80...Binary, e gravo nesse campo tanto BMP
como JPEG sem problemas, deixo a critério do usuário escolher a imagem que
deseja. Fiz assim: Na Unit do Cadastro tenho os seguintes componente:
- TOpenDialog (OpenDialog1), onde seu Filter é "Jpg|*.jpg|Bmp|*.bmp"
- TDBImage, onde configuro o DataField pra "FOTO" e o DataSource (DSTabela),
da tabela correspondente
Deixo o usuário escolher a foto a gravar sem problema e no botão "GRAVAR",
antes do POST da tabela, uso a seguinte linha:
    If (OpenDialog1.FileName <> '') And
(UpperCase(Right(OpenDialog1.FileName, 03)) = 'JPG') Then
         ConverteJpgBmp(CdsTabelaFoto,OpenDialog1.FileName); // onde
CdsTabela é o meu TClientDataSet dessa tabela)

Essa "Right" é uma função que tenho pra pegar os "n" caracteres a direita da
string que passar por parâmetro:
function Right(cPalavra:String; nTam: SmallInt):String;
begin
    result := copy(cPalavra, length(cPalavra)-nTam+1, nTam);
end;

E "ConverteJpgBmp" é outra uma procedure:
procedure ConverteJpgBmp(CdsTabela:TBlobField;Arquivo: string);
var
  Bmp: TBitmap;
  JPeg:TJPegImage;
  cArq:String;
  F1  :TMemoryStream;
begin
  cArq   := '';
  JPeg   := TJPegImage.Create;
  try
    F1   := TMemoryStream.Create();
    Bmp  := TBitmap.Create;
    Jpeg.LoadFromFile(Arquivo);
    try
      Bmp.Assign(JPeg);
      Bmp.SaveToFile(ChangeFileExt(Arquivo, '.Bmp'));
      cArq := ChangeFileExt(Arquivo, '.Bmp');
      F1.LoadFromFile(cArq);
      CdsTabela.LoadFromStream(F1);
    finally
      DeleteFile(pChar(cArq));
      Bmp.Free;
      F1.Free;
    end;
  finally
     JPeg.Free;
  end;
end;

Funciona perfeitamente, claro que ele na verdade converte o Jpeg em BMP,
mas, o cliente não precisa converter tudo pra Jpeg pra fazer isso, a
aplicação faz por ele. Detalhe: Na Unit que você criar a procedure de
conversão, precisa usar as seguintes "Uses": Jpeg e ClipBrd;
Espero que ajude!

----- Original Message -----
From: "Fabinho" <gatascheguei em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Monday, July 30, 2007 10:29 AM
Subject: [firebase-br] gravar JPEG numa tabela firebird


Moçada bom dia,

O assunto diz tudo... como faço para gravar uma imagem em .jpg numa tabela
firebird usando delphi?

grato!


      Alertas do Yahoo! Mail em seu celular. Saiba mais em
http://br.mobile.yahoo.com/mailalertas/
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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