2010-12-14 8 views
5

CGBitmapContext를 만드는 데 문제가 있습니다.iPhone에서 CGBitmapContext를 만들 수 없습니다.

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

정상적으로 응용 프로그램을 실행할 때 작동합니다. 내 '테스트 응용 프로그램의 컨텍스트는 (널)로 기록됩니다 (내 테스트를 수행하는 실행중인 응용 프로그램)을 실행하고 나는 다음과 같은 오류가 발생할 때 :

<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 

내 응용 프로그램이 충돌하지 않습니다. 그러나 분명히 잘못된 것이 있습니다. (나는 에러가 무의미한 문맥으로 메소드를 호출함으로써 생성된다는 것을 알고있다).

답변

7

이 오류는 생성하려고하는 비트 맵의 ​​크기가 CGSizeZero 일 때 자주 나타납니다. imageSize의 실제 값을 확인하십시오.

게다가 함수에 전달한 CGColorSpaceRef가 누설됩니다.

0

CGBitmapContextCreate 반환 값이 nil이 아닌지 확인합니까? 컨텍스트를 만들기 위해 장치에서 사용 가능한 메모리가 충분하지 않으면 무효 값을 얻게됩니다.

얼마나 많은 메모리를 앱에서 사용하고 있으며 어떤 크기의 비트 맵을 요청하고 있습니까?

관련 문제