德尔福的Android PNG下载遥控器的TImage [英] Delphi Android download remote PNG to TImage
本文介绍了德尔福的Android PNG下载遥控器的TImage的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
试图远程PNG文件分配到的TImage。我试过以下,它说:无效的流格式。我不知道如何下载PNG图像到Firemonkey风格的应用程序(XE8):
程序TfrmMain.Button1Click(发件人:TObject的);
VAR qrString:字符串;
MS:内存流;
巴布亚新几内亚:TImageMultiResBitmap;
开始
MS:= TMemoryStream.Create;
巴布亚新几内亚:= TImageMultiResBitmap.Create(PNG);
尝试
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); 最后
FreeAndNil(PNG);
FreeAndNil(MS);
结束;
解决方案
所以,球员,这似乎是正确的和可靠的解决方案:
程序TfrmMain.Button1Click(发件人:TObject的);
VAR qrString:字符串;
qrDims:整数;
MS:内存流;
开始
如果Edit1.Text<> ''然后开始
qrDims:= Screen.Width - 100;
qrString:='http://chart.googleapis.com/chart?chs='+ IntToStr(qrDims)+'X'+ IntToStr(qrDims)+'&放大器; CHT = QR&安培; CHL ='+ Edit1.Text;
MS:= TMemoryStream.Create;
尝试
IdHTTP1.get(qrString,MS);
Ms.Seek(0,soFromBeginning);
img1.Bitmap.LoadFromStream(MS);
img1.Bitmap.SaveToFile();
最后
FreeAndNil(MS);
结束;
其他结束开始
ShowMessage('请输入文字。');
结束;
结束;
Trying to assign remote PNG file to TImage. I've tried following, it says "Invalid stream format". I have no clue how to download PNG image into Firemonkey styled apps (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;
解决方案
So guys, this seems to be the correct and reliable solution:
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;
这篇关于德尔福的Android PNG下载遥控器的TImage的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文