ОК, думаю, у меня есть ответ (или несколько из них) ...
Если создание контекста завершается неудачно, в окне консоли выдается разумное сообщение об ошибке и сообщается, почему это не удалось. В этом случае контекст создается, поэтому нет ошибки.
Во-вторых, список поддерживаемых параметров для CGBtimapContext находится здесь:
http://developer.apple.com/mac/library/qa/qa2001/qa1037.html
В-третьих, UIGraphicsGetImageFromCurrentImageContext () работает только с общим контекстом, созданным с помощью UIGraphicsBeginGraphicsContext (), который мне нужно было использовать:
UIImage *newImage = [UIImage imageWithCGImage:CGBitmapContextCreateImage(ctx)];
и, в-четвертых, я не могу получить данные базовых пикселей с помощью CGBitmapContextGetData (ctx), если я создаю контекст, используя NULL в качестве первого параметра, хотя в документах подразумевается, что память начиная с версии 10.3 обрабатывается для вас. Чтобы обойти это, я создал метод под названием:
- (CGContextRef) newGreyScaleBitmapContextOfSize:(CGSize) size;
Метод создает контекст путем malloc'ing памяти и возвращает контекст ref. Я не уверен, является ли это всеобъемлющим, но поскольку я потратил несколько дней на это, я подумал, что дам вам знать, что я обнаружил до сих пор.
Надеюсь, это поможет,
Dave