德尔福的Andr​​oid PNG下载遥控器的TImage [英] Delphi Android download remote PNG to TImage

查看:434
本文介绍了德尔福的Andr​​oid 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;

这篇关于德尔福的Andr​​oid PNG下载遥控器的TImage的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆