Fórum Gravar imagem JPG - parte um milhão :P #276897

12/04/2005

0

Pessoal...
Quero resolver d vez esse problema.
Nunca consegui gravar uma imagenzinha JPG sequer numa porcaria d banco...
Eu tava usando um código q achava q tinha resolvido. Mas constatei q o código converte a imagem em bmp antes d efetivamente gravar na base de dados. Segue:
procedure TForm1.Button1Click(Sender: TObject);
  var Image: TJPEGImage;
begin
  if OpenPictureDialog1.Execute then
  begin
    Image := TJPEGImage.Create;
    Image.LoadFromFile(OpenPictureDialog1.FileName);
    Clipboard.Assign(Image);
    Table.Insert;
    DBImage1.PasteFromClipboard;
    Table.Post;
    Image.Free;
  end;
end;

Eu quero gravar a imagem JPG do jeito q ela é, e não em bitmap ou outro formato. Fiz várias pesquisas no fórum, tentei as dicas do DTDelphi, e nada... Alguém daqui já disse: use Stream. tentei, não consegui. Quem já conseguiu fazer isso, peço encarecidamente q me informe...
Beppe, Aroldo Zanela, nildo, apelo pra vcs...
Ah, ia esquecendo: uso ADO.
Abraços, e meus mais sinceros agradecimentos pela atenção.


Tnaires

Tnaires

Responder

Posts

12/04/2005

Cleidsonbsilva

Veja se te ajuda... só que aqui uso o FIREBIRD, e a paleta IBX, não tentei com o ADO.
pulei algumas partes do codigo, so coloquei o que interessa.


var
BinFile: TMemoryStream;
Tabela: TIBQuery;
JPG: TJPEGIMAGE;
begin

JPG.Assign(image1.picture.bitmap);
BinFile := tmemorystream.Create;
jpg.SaveToStream(binfile);


Tabela.SQL.Add(
´INSERT INTO IMAGENS(PACIENTE_ID, IMAGEM_DATA, IMAGEM_BLOB, IMAGEM_NOME, IMAGEM_TIPO) ´ +
´VALUES (:PAC_ID, :PAC_NOME, :BlobData, :imagem_nome, :tipo)´);

// no meu caso, o parametro :BLOBDATA é que recebe a imagem...

Tabela.ParamByName(´BLOBDATA´).LoadFromStream(Binfile, ftblob);
Tabela.ExecSQL;



Espero ter ajudado...


Responder

Gostei + 0

12/04/2005

Tnaires

Obrigado cara, mas sua dica não funcionou. Tentei com TMemoryStream, e com TADOBlobStream, mas sem efeito. E outra: tenho a impressão q sua dica acaba caindo no q eu descrevi (meus testes não deram certo, por isso não posso afirmar com certeza): a imagem acaba sendo gravada no banco descompactada. Pegue seu banco vazio, insira uma imagem JPG, e veja o tamanho do banco após a inserção, pra ver se ele ficou absurdamente maior.
Abraços. Mais alguém?


Responder

Gostei + 0

12/04/2005

Tnaires

OK, galera, não precisa mais. Graças às informações contidas neste tópico, [url]http://forum.clubedelphi.net/viewtopic.php?t=61374[/url], consegui fazer o q queria. Meus agradecimentos aos usuários merli e cleidsonbsilva!
Abraços.


Responder

Gostei + 0

12/04/2005

Lucaniasalvatore

Boa noite, comunidade.

Existe um componente ótimo para se trabalhar com imagens e banco de dados Access opu outro qualquer, é o EDBImage 1.6 JPG.

Pode-se trabalhar com os formatos .ico .bmp .wmf .emf .jpg .jpeg., sem uma linha de código.

Pode copiar da área de transferência .bmp .wmf .jpg .jpeg. No evento ´OnLoadCustomImage´ você pode carregar qualquer tipo de imagem desconhecida gif, tiff, png,...

Tem ainda o componente TQREDBimage, que foi criado para imprimir arquivos de imagens. Com os mesmos destaques do componente TEDBImage. Após a instalação ele ficará disponível na paleta Data Controls, e o TQREDBimage na paleta QReport (Quick Report).

O endereço: [url]http://cc.borland.com/cc/ccweb.exe/listing?id=22742[/url]

É isso,

Boa programação

Lucania Salvatore


Responder

Gostei + 0

12/04/2005

Aroldo Zanela

Boa noite, comunidade. Existe um componente ótimo para se trabalhar com imagens e banco de dados Access opu outro qualquer, é o EDBImage 1.6 JPG. Pode-se trabalhar com os formatos .ico .bmp .wmf .emf .jpg .jpeg., sem uma linha de código. Pode copiar da área de transferência .bmp .wmf .jpg .jpeg. No evento ´OnLoadCustomImage´ você pode carregar qualquer tipo de imagem desconhecida gif, tiff, png,... Tem ainda o componente TQREDBimage, que foi criado para imprimir arquivos de imagens. Com os mesmos destaques do componente TEDBImage. Após a instalação ele ficará disponível na paleta Data Controls, e o TQREDBimage na paleta QReport (Quick Report). O endereço: [url]http://cc.borland.com/cc/ccweb.exe/listing?id=22742[/url] É isso, Boa programação Lucania Salvatore

Colega,

Testado e aprovado.


Responder

Gostei + 0

03/05/2005

Walfrido

baixei o arquivo do edbimage mas diz que ta falando arquivos na hora da instalação.

Tem como de vc mandar o seus arquivos pra mim.


mande para este email: walfrido@com4.com.br

Desde já agradeço,


Responder

Gostei + 0

04/05/2005

Tnaires

Caro walfrido:
Vc leu o arquivo LEIAME que vem com os arquivos de instalação? Se vc resolver não baixar a unit GraphicEx (que o autor do componente sugere baixar, e serve para dar suporte a outros formatos menos comuns), é necessário comentar uma linha no código da unit do DBEImage. Tá tudo bem explicado no LEIAME, talvez seu problema de instalação se origine daí.
Abraços


Responder

Gostei + 0

10/06/2005

Daniel_mc

Estou utilizando o componente mas quando executo o programa, na hora que vai chamar o componente ele da um erro dizendo que a propriedade ZoomToFit não existe!

Alguem saberia o que é este erro?

Daniel


Responder

Gostei + 0

13/06/2005

Daniel_mc

SOBE


Responder

Gostei + 0

14/06/2005

Daniel_mc

Sobe de novo


Responder

Gostei + 0

15/06/2005

Daniel_mc

Aroldo Zanel,vc testou com campos Blob(Jpg) e funcionou perfeitamnte?
Náo deu este erro de ZoomtoFit náo? Qual versáo que vc testou? Server para Delphi 7?


Responder

Gostei + 0

21/06/2005

Daniel_mc

SOBE


Responder

Gostei + 0

21/06/2005

Tnaires

Olá

Eu testei pra Access e pra SQL Server com Delphi 7, e funcionou perfeitamente. Inclusive eu altero essa propriedade ( ZoomToFit ) em tempo de execução, via código, e não dá erro.

Vc não instalou um arquivo pra uma versão diferente do Delphi não?

Veja também se vc num colocou um TDBImage comum por engano no seu programa.

Leia o arquivo leiame q vem com o componente pra tirar suas dúvidas.

Abraços


Responder

Gostei + 0

21/06/2005

Daniel_mc

Vc fez o download do domponente para Delphi 7 aonde?


Responder

Gostei + 0

21/06/2005

Sandra

Daniel,

Ao fazer o download na página indicada, verá os arquivos .dpk: DCLserXX e VCLserXX, onde XX é a indicação da versão do delphi onde vai ser instalado o componente.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar