joemil
Moderador
Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT
Enviada: Qui Mar 30, 2017 9:03 am
Assunto:
tenta abrir no paint e salvar novamente pra ver se corrige
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens:
http://tinypic.com/
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Qui Mar 30, 2017 10:04 am
Assunto:
Eu tive este mesmo problema dias atrás.
Por não ter muito tempo, preferi usar o caminho descrito no banco.
_________________
Luciano Moraes
1º curso de Pascal em 1998.
natanbh1
Colaborador
Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3080
Localização: Belo Horizonte - MG
Enviada: Qui Mar 30, 2017 10:30 am
Assunto:
Se você tentar carregar um arquivo de outra extensão para uma variável do tipo JPEG pode ocorrer este erro.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Qui Mar 30, 2017 10:46 am
Assunto:
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Qui Mar 30, 2017 11:50 am
Assunto:
Desculpe-me insistir mas, não me lembro de declarar
a unit jpeg, ou de ler sobre isto em minhas
pesquisas. Mas detalhando o que fiz, foi criar um campo blob
no Interbase. E pelo Delphi gravei a imagem com um dbMemo.
A imagem é jpg, mas fica registrada sem extensão no banco, como
eu entendo.
Apesar de descontinuar isto, pois tomei um pau desg#@%&*,
eu gostaria ainda de voltar a usar isto.
_________________
Luciano Moraes
1º curso de Pascal em 1998.
johnny-walker
Moderador
Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10646
Localização: Contagem/MG - BRAZIL
Enviada: Qui Mar 30, 2017 1:41 pm
Assunto:
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Qui Mar 30, 2017 4:13 pm
Assunto:
Sendo assim, vou testar e posto o resultado aqui. Agradecido.
_________________
Luciano Moraes
1º curso de Pascal em 1998.
strak2012
Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1514
Localização: Maceió - AL
Enviada: Qui Mar 30, 2017 4:44 pm
Assunto:
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Qui Mar 30, 2017 4:50 pm
Assunto:
Como eu disse, eu gravei a imagem com o auxílio de um componente TDBMemo. Ao consultar o registro, a imagem aparece normalmente. Quer dizer que no banco está bem. Se a imagem "estivesse ruim" nem apareceria na consulta do registro, penso eu.
_________________
Luciano Moraes
1º curso de Pascal em 1998.
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Qui Mar 30, 2017 4:55 pm
Assunto:
Mas strak2012, acho que é isso mesmo que o autor do tópico está fazendo. (conforme você deu o exemplo do passado).
_________________
Luciano Moraes
1º curso de Pascal em 1998.
strak2012
Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1514
Localização: Maceió - AL
Enviada: Qui Mar 30, 2017 5:22 pm
Assunto:
Como eu disse, eu gravei a imagem com o auxílio de um componente TDBMemo. Ao consultar o registro, a imagem aparece normalmente. Quer dizer que no banco está bem. Se a imagem "estivesse ruim" nem apareceria na consulta do registro, penso eu.
Me parece que não, quando usado um campo blob ou outro similar me parece que a imagem não vai toda na intigra para o banco e sim a class TGraphic é que vai ser armazenada juntamente com seu conteudo, que por sua vez pode possuir alguma referencia do tipo de imagem que estar em seu conteudo Só que TGraphic não é um TJPEGImage e és onde muitas das vezes se encontra o problema.
O melhor é tratar tudo com TGraphic momento antes do LoadFromStream.
_________________
Tudo podemos quando tudo sabemos!
strak2012
Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1514
Localização: Maceió - AL
Enviada: Qui Mar 30, 2017 9:59 pm
Assunto:
// uses
// Vcl.Imaging.jpeg, Vcl.Imaging.pngimage, Vcl.Imaging.GIFImg -> para delphis recente
// jpeg, pngimage, GIFImg -> para delphis antigos
vStream: TMemoryStream;
ImageJPG: TJPEGImage;
ImageBMP: Tbitmap;
ImagePNG: TPngImage;
ImageGIF: TGIFImage;
Header: array [0 .. 9] of byte;
StrHeader: string;
I: integer;
begin
vStream := TMemoryStream.Create;
TBlobField(Modulo1.Q_Imagem.FieldByName('foto')).SaveToStream(vStream);
vStream.Position := 0;
vStream.ReadBuffer(Header, length(Header));
vStream.Position := 0;
StrHeader := '';
for I := Low(Header) to High(Header) do
if (Header[I] >= 32) and (Header[I] <= 128) then
StrHeader := StrHeader + char(Header[I]);
if pos('JFIF', StrHeader) <> 0 then // arquivo ImageJPG, JPEG
begin
ImageJPG := TJPEGImage.Create;
ImageJPG.LoadFromStream(vStream);
Image2.Picture.Assign(ImageJPG);
ImageJPG.free;
if pos('PNG', StrHeader) <> 0 then // arquivo ImagePNG
begin
ImagePNG := TPngImage.Create;
ImagePNG.LoadFromStream(vStream);
Image2.Picture.Assign(ImagePNG);
ImagePNG.free;
if pos('GIF', StrHeader) <> 0 then // arquivo ImageGIF
begin
ImageGIF := TGIFImage.Create;
vStream.LoadFromStream(vStream);
Image2.Picture.Assign(ImageGIF);
ImageGIF.free;
if pos('BM', StrHeader) <> 0 then // arquivo ImageBMP
begin
ImageBMP := Tbitmap.Create;
ImageBMP.LoadFromStream(vStream);
Image2.Picture.Assign(ImageBMP);
ImageBMP.free;
Image2.Repaint;
Image2.Refresh;
end;
_________________
Tudo podemos quando tudo sabemos!
strak2012
Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1514
Localização: Maceió - AL
Enviada: Qui Mar 30, 2017 10:00 pm
Assunto:
conorte
Experiente
Registrado: Quinta-Feira, 8 de Mai de 2014
Mensagens: 406
Localização: Porto Alegre/RS
Enviada: Sex Mar 31, 2017 10:07 am
Assunto:
Obrigado strak2012. Pela manhã cedo li o seu último post.
Porque eu não vi ontem a noite o seu post? Que droga.
Notei que você usa SaveToStream. Então lembrei que eu uso
LoadToStream. Na correria não vi que o autor também
usa o mesmo que você.
Vou tentar depois usando o que você sugeriu mas com LoadFromStream
(ou LoadToStream, não lembro agora).
A propósito, eu já tinha pesquisado algo do tipo da sua sugestão.
_________________
Luciano Moraes
1º curso de Pascal em 1998.