zoukankan      html  css  js  c++  java
  • coco2dx加载网络图片并保存

    直接上代码

    bool HelloWorld::init()
    {
        //////////////////////////////
        // 1. super init first
        if ( !Layer::init() )
        {
            return false;
        }
    
        HttpRequest* request = new HttpRequest();
        request->setUrl("http://neoimaging.beareyes.com.cn/png2/ni_png_2_1518.png");
        request->setRequestType(HttpRequest::Type::GET);
        request->setResponseCallback(this, httpresponse_selector(HelloWorld::onHttpRequestCompleted));
        request->setTag("GET test1");
        HttpClient::getInstance()->send(request);
        request->release();
    
        return true;
    }
    
    void HelloWorld::onHttpRequestCompleted(HttpClient *sender, HttpResponse *response)
    {
        if (!response)
        {
            return;
        }
        
        // You can get original request type from: response->request->reqType
        if (0 != strlen(response->getHttpRequest()->getTag())) 
        {
            log("%s completed", response->getHttpRequest()->getTag());
        }
        int statusCode = response->getResponseCode();
        if (!response->isSucceed()) 
        {
            log("response failed");
            log("error buffer: %s", response->getErrorBuffer());
            return;
        }
    
        //get data
        std::vector<char> *buffer = response->getResponseData();
    
        //create image
        CCImage* img = new CCImage;
        img->initWithImageData((unsigned char*)buffer->data(),buffer->size());
        
        //create texture
        cocos2d::CCTexture2D* texture = new CCTexture2D();
        bool isImg = texture->initWithImage(img);
        img->release();
    
        //create sprite
        CCSprite* sprite = CCSprite::createWithTexture(texture);
        texture->release();
        sprite->setPosition(ccp(100,100));
        addChild(sprite,100);
    
        //write file
        std::string path = CCFileUtils::sharedFileUtils()->getWritablePath();
        path+="download_image.png";
    
        FILE *fp = fopen(path.c_str(), "wb+");
        fwrite(buffer->data(), 1,buffer->size(), fp);
        fclose(fp);
    }
  • 相关阅读:
    [转]十个让你变成糟糕的程序员的行为
    [转]CKEDITOR 使用说明
    [转]惹恼程序员的十件事
    基本权限管理框架配套代码生成器!
    Easy UI 点击TAB 标签 刷新内容
    jQuery.easyui 与 jQuery.Valiedate 验证控件组合使用实例!
    [转]十条不错的编程观点
    dos 改 ip
    今天碰到了几个老同学,哎,,感觉
    猛玩War3中
  • 原文地址:https://www.cnblogs.com/mrblue/p/3414808.html
Copyright © 2011-2022 走看看