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.
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!
{ 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.
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
Está gostando do conteúdo?
Considere pagar um cafezinho para nossa equipe!