CGContextRef context = CGBitmapContextCreate(nil,
width, //if width More than 6002/4
height,
8,
width*4,//if width*4 > 6002
colorSpace,
kCGImageAlphaPremultipliedFirst |kCGBitmapByteOrder32Little );
当宽度* 4&gt; 6002有错误时,我想构建一个大位图(宽度<= 2500)
<Error>: CGBitmapContextCreate: unsupported parameter combination:
8 integer bits/component; 32 bits/pixel;
3-component color space; kCGImageAlphaPremultipliedFirst; 6002 bytes/row.
如何构建大型位图 感谢。
答案 0 :(得分:1)
问题是6002字节/行,因为这里每个像素需要4个字节,但6002不能被4个没有余数分割。更好地计算每个像素的行数:
size_t width = 1920;
size_t height = 1080;
CGContextRef context = CGBitmapContextCreate(
NULL,
width,
height,
8,
width * 4,
colorSpace,
kCGImageAlphaPremultipliedFirst |kCGBitmapByteOrder32Little );
答案 1 :(得分:0)
new bytesPerRow将与原始图像不同。您需要计算新的bytesPerRow。
bytesPerPixel * targetWidth
你不能拿静态8和4.
请参阅this了解色彩空间和相对bytesPerPixel。