unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Net.URLClient, Jpeg,
System.Net.HttpClient, System.Net.HttpClientComponent, Vcl.StdCtrls,
Vcl.ExtCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
http: TNetHTTPClient;
NetHTTPRequest1: TNetHTTPRequest;
img1: TImage;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
url:string; // 图片地址
flag:IHTTPResponse; // TNetHTTPClient控件发起访问后的返回信息(主要是 状态码和cookies)
image:TMemoryStream; // 保存网页返回的图片数据的内存流(可以理解为保存byte数据的数组)
png :TjpegImage; // 图片流 将内存流转换为图片流然后 传递给 TImage控件使用
begin
// 首先需要引入对应的图片类型库,在此处为 (uses Jpeg )
try
image:=TMemoryStream.Create; //构造内存流
png :=TjpegImage.Create; //构造图片流
image.Position:=0; /// 设置内存流的postion,防止内存访问错误
url:='https://www.mxttbk.com/wp-content/uploads/2020/08/bb119d5df9a4c0238b556d0197ec53fa.jpeg';
///
/// 第一个参数是 图片地址
/// 第二个参数是 内存流 (image)
///
flag:=http.Get(url,image); // 发起访问
png.LoadFromStream(image); // 将内存流 (image)转换到 图片流(png)
img1.Picture.Assign(png); // 将图片流 传递给 图片控件
finally
// 释放流
image.Free;
png.Free;
end;
end;
end.