cocos2d-x提供了curl的封装类,只需要引包和加入库文件就可以直接使用。利用libcurl可以简单方便的实现获取网络的数据,发送请求等。
用libcurl实现下载图片并不复杂,可惜网上很少有资料,费了好大力气才完成这个功能。
首先定义两个全局变量
unsigned char buffer[200000]; //接受图片数据,我设置的buffer最大只能接受200Kb的图片,可根据自己需要更改
int l = 0; //图片的大小
处理接受数据的函数:
int writer(unsigned char *data,size_t size,size_t nmemb, unsigned char *writerData)
{
int realsize = size * nmemb;
memcpy(buffer+l, data, realsize);
//一次不能接受完数据会多次调用
l += realsize;
return realsize;
}
curl设置函数:
void get_image(CCTexture2D * tex)
{
CURLcode res;
m_curl = curl_easy_init();
if (m_curl)
{
//设置图片地址,网上的图片地址不是每个地址都能收到数据,自己测试
curl_easy_setopt(m_curl, CURLOPT_URL, ("