繁体   English   中英

C ++ Builder TImage从URL加载

[英]C++ Builder TImage Load From URL

在弄清楚如何将图像从URL加载到TImage控件时遇到了麻烦。

概括地说,这就是我要做的

   TMemoryStream *str = new TMemoryStream;
   http->Get("http://myurl.mydomain.com/myimage.jpg", str);

问题似乎是str没有分配空间。 而且我收到“无效的IO处理错误”。

我无法事先找到图像的大小。

请问我该怎么做? 我试图通过创建一个虚拟文件并将该文件加载到TMemoryStream来为TMemoryStream分配10MB的空间,但这也会引发“无效的IO处理程序”错误。

在RAD Studio XE7上使用C ++ Builder开发iOS和Android应用程序。

非常感谢

艾耶

问题不在于您显示的代码。 TMemoryStream随着数据的写入而动态增长,并且TIdHTTP::Get()将写入服务器实际发送的任何数据。 您显示的代码语法很好。

如果从Get() “ IOHandler值无效”错误,则表示正在请求HTTPS URL,但未将TIdSSLIOHandlerSocketBase派生的组件(例如TIdSSLIOHandlerSocketOpenSSL )分配给TIdHTTP::IOHandler属性以处理SSL。 / TLS加密。 您的代码正在请求HTTP URL,因此服务器可能会发送重定向响应,以告知TIdHTTP来请求HTTPS URL(请检查TIdHTTP::OnRedirect事件以进行验证)。 您需要分配一个SSL IOHandler才能处理HTTPS URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM