Exemplo em Lazarus: Recuperando e Exibindo uma Imagem da Web usando TFPHttpClient

Recuperando e Exibindo uma Imagem da Web

Fala galera da programação, tudo beleza?

A dica de hoje é como podemos recuperar uma imagem da Web através de uma requisição HTTP com o Lazarus.

O nosso exemplo em Lazarus para recuperar uma imagem da web e exibi-la em um componente TImage. Certifique-se de ter a biblioteca fphttpclient instalada em seu Lazarus. Essa biblioteca já deve acompanhar o Lazarus por padrão.

 

O que é a biblioteca fphttpclient?

A biblioteca fphttpclient é uma parte do Free Pascal Runtime Library (FPRRTL) e é uma implementação do cliente HTTP para o ambiente de desenvolvimento Lazarus/Free Pascal. Ela permite que os desenvolvedores criem aplicativos capazes de realizar solicitações HTTP, como fazer downloads de arquivos, acessar APIs da web, enviar dados para servidores, entre outras operações relacionadas à comunicação com servidores web.

O fphttpclient fornece uma maneira fácil e flexível de interagir com servidores web, oferecendo suporte a protocolos HTTP e HTTPS. Ele é especialmente útil para criar aplicativos que precisam recuperar recursos da web, como imagens, arquivos de texto, dados JSON/XML, etc.

Com o fphttpclient, os desenvolvedores podem escrever código para enviar solicitações HTTP, manipular cabeçalhos HTTP, processar respostas HTTP, lidar com redirecionamentos, e muito mais. Isso torna possível desenvolver uma ampla variedade de aplicativos web e clientes HTTP em Lazarus/Free Pascal.

 

Agora vamos os códigos!

 

Exemplo em Lazarus 3.0

{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br     

}
program Hello;
var
  HttpClient: TFPHttpClient;
  ImageStream: TMemoryStream;
begin
  HttpClient := TFPHttpClient.Create(nil);
  ImageStream := TMemoryStream.Create;
  try
    try
      // Baixa a imagem da URL
      HttpClient.Get('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', ImageStream);

      // Se a resposta for bem-sucedida, carrega a imagem no TImage
      if HttpClient.ResponseStatusCode = 200 then
      begin
        ImageStream.Position := 0;
        Image1.Picture.LoadFromStream(ImageStream);
      end
      else
        ShowMessage('Erro ao baixar a imagem: ' + IntToStr(HttpClient.ResponseStatusCode));
    except
      on E: Exception do
        ShowMessage('Erro ao baixar a imagem: ' + E.Message);
    end;
  finally
    HttpClient.Free;
    ImageStream.Free;
  end;
end.

Este exemplo usa TFPHttpClient do pacote fphttpclient para baixar a imagem da web. Se a solicitação for bem-sucedida (código de status HTTP 200), a imagem é carregada no componente TImage. Certifique-se de ter o pacote fphttpclient instalado em seu ambiente Lazarus.

 

Could not initialize OpenSSL library

Se você estiver enfrentando o erro “Could not initialize OpenSSL library”, isso ocorre porque o TFPHttpClient requer a biblioteca OpenSSL para realizar solicitações HTTPS. Você precisa garantir que o OpenSSL esteja corretamente configurado em seu sistema.

Isso geralmente é resolvido adicionando as dlls da OpenSSL na pasta do seu executável. Lembre-se de colocar as dlls correspondentes, ou seja x32 para programas x32 e x64 para programas x64.

Quem utiliza o ACBr, dentro da pasta dos fontes ..\ACBr\trunk2\DLLs\OpenSSL

 

Vídeo de demostração de aplicação

 

Também vou deixar o link do repositório do exemplo no github.
https://github.com/giovani7cruz/SalvarImgHttp

 

Beleza pessoal? Espero que possa ajudar.

 

Dúvidas ou sugestões? Deixe o seu comentário!

 

Um abraço e até o próximo post. Valeu!

 

#LazarusProgramming

#HTTPClient

#WebImageFetching

#GiovaniDaCruz

  • Publicado por Giovani Da Cruz
  • 40 views
  • 0 comentarios
  • 24 de fevereiro de 2024

 

Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Posts Relacionados a Categoria Lazarus

Continue aprendendo

Aumente o seu conhecimento
Como simular uma tecla ser pressionada em Delphi e Lazarus?
12 de maio de 2024
Imagens e Fotos em Delphi e Lazarus (TImage e TDBImage)
4 de abril de 2024
Lazarus: A IDE de Desenvolvimento Open Source que Revolucionou a Programação
27 de fevereiro de 2024
5 dicas para converter String para Integer em Pascal / Delphi / Lazarus
18 de fevereiro de 2024
Como gravar um valor no registro do Windows em Delphi, Lazarus, Pascal
27 de janeiro de 2024