Delphi Android 下载远程PNG到TImage
Delphi Android download remote PNG to TImage
正在尝试将远程 PNG 文件分配给 TImage。我试过关注,它说 "Invalid stream format"。我不知道如何将 PNG 图像下载到 Firemonkey 风格的应用程序 (XE8) 中:
procedure TfrmMain.Button1Click(Sender: TObject);
var qrString: String;
MS : TMemoryStream;
Png: TImageMultiResBitmap;
begin
MS := TMemoryStream.Create;
Png := TImageMultiResBitmap.Create(Png);
try
IdHTTP1.get('https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=chujisko',MS);
Ms.Seek(0,soFromBeginning);
Png.LoadFromStream(MS);
img1.MultiResBitmap.Assign(Png);
finally
FreeAndNil(Png);
FreeAndNil(MS);
end;
伙计们,这似乎是正确可靠的解决方案:
procedure TfrmMain.Button1Click(Sender: TObject);
var qrString: String;
qrDims: integer;
MS : TMemoryStream;
begin
if Edit1.Text <> '' then begin
qrDims := Screen.Width - 100;
qrString := 'http://chart.googleapis.com/chart?chs=' + IntToStr(qrDims) + 'x' + IntToStr(qrDims) + '&cht=qr&chl=' + Edit1.Text;
MS := TMemoryStream.Create;
try
IdHTTP1.get(qrString, MS);
Ms.Seek(0,soFromBeginning);
img1.Bitmap.LoadFromStream(MS);
img1.Bitmap.SaveToFile();
finally
FreeAndNil(MS);
end;
end else begin
ShowMessage('Please, input a text.');
end;
end;
正在尝试将远程 PNG 文件分配给 TImage。我试过关注,它说 "Invalid stream format"。我不知道如何将 PNG 图像下载到 Firemonkey 风格的应用程序 (XE8) 中:
procedure TfrmMain.Button1Click(Sender: TObject);
var qrString: String;
MS : TMemoryStream;
Png: TImageMultiResBitmap;
begin
MS := TMemoryStream.Create;
Png := TImageMultiResBitmap.Create(Png);
try
IdHTTP1.get('https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=chujisko',MS);
Ms.Seek(0,soFromBeginning);
Png.LoadFromStream(MS);
img1.MultiResBitmap.Assign(Png);
finally
FreeAndNil(Png);
FreeAndNil(MS);
end;
伙计们,这似乎是正确可靠的解决方案:
procedure TfrmMain.Button1Click(Sender: TObject);
var qrString: String;
qrDims: integer;
MS : TMemoryStream;
begin
if Edit1.Text <> '' then begin
qrDims := Screen.Width - 100;
qrString := 'http://chart.googleapis.com/chart?chs=' + IntToStr(qrDims) + 'x' + IntToStr(qrDims) + '&cht=qr&chl=' + Edit1.Text;
MS := TMemoryStream.Create;
try
IdHTTP1.get(qrString, MS);
Ms.Seek(0,soFromBeginning);
img1.Bitmap.LoadFromStream(MS);
img1.Bitmap.SaveToFile();
finally
FreeAndNil(MS);
end;
end else begin
ShowMessage('Please, input a text.');
end;
end;