Array
(
)

Erro em fotos do tipo *.jpg

Placido
   - 09 ago 2004

Salvar imagem com qualquer estensão; *.bmp, *.jpg etc.

No momento que o usuário clica para abrir a foto da o seguinte erro:

(Bitmap image is not valid)

Na propriedade filter, do componente OpenPictureDialog não fiz nenhuma
alteração como no ex. abaixo:
(All (*.gif;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.gif;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf|CompuServe GIF Image (*.gif)|*.gif|JPEG Image File (*.jpg)|*.jpg|JPEG Image File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf)


Para o usuário capturar a imagem coloquei os comandos abaixo no botão bitbtn:


If dsPadrao.State in [dsInsert, dsEdit] then
if OpenPictureDialog1.Execute then
begin
cdsPadraoCLI_FOTO.LoadFromFile(OpenPictureDialog1.FileName);
SalvarBtn.Enabled := True;
end;


O campo está definido como (blob Sub Type 0).

Utilizo os componentes do dbexpress para acesso ao banco.

Alguem poderia me dar a solução.

Grato pela atenção

Plácido/Ellen


Placido
   - 09 ago 2004


Citação:
Salvar imagem com qualquer extensão; *.bmp, *.jpg etc.

No momento que o usuário clica para abrir a foto da o seguinte erro:

(Bitmap image is not valid)

Na propriedade filter, do componente OpenPictureDialog não fiz nenhuma
alteração como no ex. abaixo:
(All (*.gif;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.gif;*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf|CompuServe GIF Image (*.gif)|*.gif|JPEG Image File (*.jpg)|*.jpg|JPEG Image File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf)


Para o usuário capturar a imagem coloquei os comandos abaixo no botão bitbtn:


If dsPadrao.State in [dsInsert, dsEdit] then
if OpenPictureDialog1.Execute then
begin
cdsPadraoCLI_FOTO.LoadFromFile(OpenPictureDialog1.FileName);
SalvarBtn.Enabled := True;
end;


O campo está definido como (blob Sub Type 0).

Utilizo os componentes do dbexpress para acesso ao banco.

Observação: Só está aceitando gravar campos do tipo bmp, eu quero todos

Alguem poderia me dar a solução.

Grato pela atenção

Plácido/Ellen



Emerson
   - 09 ago 2004

se o erro ocorre quando seleciona imagens .jpg, adicione JPEG na cláusula uses da sua unit.


Placido
   - 09 ago 2004

Emerson fiz o que você orientou , mas o problema persiste.
Grata :roll:


Emerson
   - 09 ago 2004

existem algum componente visual para mostrar a imagem? um TDBImage?

se houver, troque-o por um TImage e carregue a imagem manualmente.


Placido
   - 10 ago 2004

Continuo precisando de ajuda o erro persiste.
Alguem poderia da a solução para este problema que aparentemente parece ser simples, mas eu não estou conseguindo resolver.
Volto a dizer que está gravando somente imagens do tipo bmp, eu quero jpg tambem.
Grato


Placido
   - 10 ago 2004

Conseguimos salvar no banco a imagem jpg, mas nao conseguimos retornar a imagem do banco com o componente TImagem. Alguem pode me dizer como faço para ler do banco para o TImagem???

Obs: Usando o LoadFromFile do componente funciona somente para ler de arquivos e não do banco de dados.

Grata

Ellen


Emerson
   - 10 ago 2004

adapte essa rotina que foi retirada do arquivo de 800 dicas Delphi, que pode ser baixado em:
http://200.241.52.8/meep/lloydsoft/download_file.php?id=1



Procedure Le_Imagem_JPEG(Campo:TBlobField; Foto:TImage);
var BS:TBlobStream;
    MinhaImagem:TJPEGImage;
Begin
    if Campo.AsString <> ´´ Then
    Begin
        BS := TBlobStream.Create((Campo as TBlobField), BMREAD);
        MinhaImagem := TJPEGImage.Create;
        MinhaImagem.LoadFromStream(BS);
        Foto.Picture.Assign(MinhaImagem);
        BS.Free;
        MinhaImagem.Free;
    End
    Else
        Foto.Picture.LoadFromFile(´c:\temp\limpa.jpg´);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
    Le_Imagem_JPEG(TbClientesCli_Foto, Image1);
// TbClientesCli_Foto é um variavel da tabela do tipo Blob
// Image1 é um componente
end;