如何jpg和png混和使用,实现mask?

最近《刀塔传奇》很火,所以研究了一下他里面技术,发现他图片很多都是 用jpg和黑白色png作为遮罩来实现。
网上找了大致2个方法:
1, http://blog.youkuaiyun.com/dawn_moon/article/details/8631783   但这个图片要求是PNG的

2,http://zengrong.net/post/2060.htm  这个方法正是符合需求,但是我照着代码用发现效果出不来


感谢QQ好友(快乐小冬瓜(Dony))的帮忙,问题解决了,解决方法在下面。同时本人刚入行半个月,希望能认识更多的朋友,欢迎加*****:346271116 

CCImage *jpgImage = new CCImage();
    jpgImage -> initWithImageFile("img/right_1.jpg",CCImage::kFmtJpg);
    unsigned char *jpgData = jpgImage -> getData();

    CCImage *pngImage = new CCImage();
    pngImage -> initWithImageFile("img/right_1_alpha_mask",CCImage::kFmtPng);
    unsigned char *pngData = pngImage->getData();

    int len = jpgImage->getDataLen();
    int width = jpgImage->getWidth();
    int height = jpgImage->getHeight();

    int pixelSize = len / (width * height);

    unsigned char *outPic = new unsigned char[len * 4];
    unsigned char dest;
    int outIndex = 0;
    int srcIndex = 0;
    for(int i = 0; i < len; i++)
    {
        dest = pngData[srcIndex];//得到第一个

        outPic[outIndex] = jpgData[srcIndex];
        outPic[outIndex + 1] = jpgData[srcIndex + 1];
        outPic[outIndex + 2] = jpgData[srcIndex+2];
        outPic[outIndex + 3] = dest;
        srcIndex += 3;
        outIndex += 4;
    }

    CCTexture2D *texture = new CCTexture2D();
    texture->initWithData(outPic,kCCTexture2DPixelFormat_RGBA8888,width,height,CCSizeMake((float)width, (float)height));


http://www.cocoachina.com/bbs/read.php?tid=201144



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值