[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