问题描述:
项目是在IOS6下开发的,后来将Xcode升级,并在没有修改的情况下运行在了IOS7设备中。
CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 24 bits/pixel; 3-component color space; kCGImageAlphaNone; 363 bytes/row.
需要修改cocos2d-x的底层:
找到函数:
static bool _initWithString(const char * pText, cocos2d::CCImage::ETextAlign eAlign, const char * pFontName, int nSize, tImageInfo* pInfo)
并在函数中做部分修改:
const int _width = dim.width;
const int _height = dim.height;
unsigned char* data = new unsigned char[(int)(dim.width * dim.height * 4)];
memset(data, 0, (int)(_width * _height * 4));
// draw text
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(data, _width, _height, 8, _width * 4,
colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
原因:
因为浮点数 * 4以后再取整, 有可能不是4的倍数。