[cocos2d-x 2.0.4][iOS7]图片加载错误

本文详细说明了如何解决Cocos2d-x 2.0.4在iOS7环境下遇到的图像加载错误问题。通过定位到CCimage.mm文件中的_initWithString函数,发现数据宽度乘以4可能不为整数,因此在创建上下文时进行强制类型转换以解决此错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇文章由:http://www.sollyu.com/cocos2d-x-2-0-4-ios7-image-loading-errors/

说明

错误提示

<Error>:CGBitmapContextCreate:unsupportedparametercombination:8integerbits/component;32bits/pixel;3-componentcolorspace;kCGImageAlphaPremultipliedLast;1266bytes/row.

解决

定位文件 CCimage.mm 并找到函数 _initWithString

函数原型

staticbool_initWithString(constchar*pText,cocos2d::CCImage::ETextAligneAlign,constchar*pFontName,intnSize,tImageInfo*pInfo)

找到代码

▼代码位置大约在301行

[cocos2d-x 2.0.4][iOS7]图片加载错误

// draw text
CGColorSpaceRef colorSpace  = CGColorSpaceCreateDeviceRGB();
CGContextRef context        = CGBitmapContextCreate(data,
                                                    dim.width,
                                                    dim.height,
                                                    8,
                                                    (int)dim.width * 4, // 此处为修改
                                                    colorSpace,
                                                    kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);

原理

因为 dim.width * 4 有可能不是整数,所以就来个强制类型转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值