iPhone无法创建CGBitmapContext

时间:2010-12-14 11:18:56

标签: iphone xcode core-graphics

我在创建CGBitmapContext时遇到问题。

CGContextRef bitmapContext = CGBitmapContextCreate(nil, imageSize.width, imageSize.height, 8, imageSize.width * 4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst)

当我正常运行我的应用程序时,它可以工作。但是当我在我的'测试应用程序'(一个正在执行我的测试的正在运行的应用程序)中运行它时,上下文被记录为(null)并且我得到以下错误:

<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0
<Error>: CGContextDrawImage: invalid context 0x0
<Error>: CGContextDrawImage: invalid context 0x0
<Error>: CGBitmapContextCreateImage: invalid context 0x0

我的应用程序没有崩溃。但显然有些不对劲。 (我知道错误是通过使用nil上下文调用这些方法创建的。)

2 个答案:

答案 0 :(得分:7)

当您尝试创建的位图大小为CGSizeZero时,通常会出现此错误。检查imageSize的实际值。

此外,你泄漏了传递给函数的CGColorSpaceRef。

答案 1 :(得分:0)

您是否检查CGBitmapContextCreate返回值是否为非零?如果设备上没有足够的可用内存来创建上下文,您将获得零值。

您在应用中使用了多少内存以及您要求的位图大小?