2010-03-24 4 views
3

Я пытаюсь объединить два UIImage в течение примерно 2 дней, и я получаю некоторые ошибки BAD_ACCESS. Прежде всего, у меня есть два изображения с одинаковой ориентацией, в основном я использую CoreGraphics для смешивания.CGContextDrawImage возвращает плохой доступ

Любознательная деталь, каждый раз, когда я изменяю код, при первом компиляции и запусках на устройстве я получаю все, что хочу, без каких-либо проблем. Как только я перезапущу приложение, я получаю сообщение об ошибке, и программа отключается.

Может ли кто-нибудь дать мне свет? Я попытался получить доступ к параметрам baseImage динамически, но это также дает мне плохой доступ.

Вот фрагмент того, как я делаю смешение.

UIGraphicsBeginImageContext(CGSizeMake(320, 480)); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

CGContextTranslateCTM(context, 0, 480); 
CGContextScaleCTM(context, 1.0, -1.0); 

CGContextDrawImage(context, rect, [baseImage CGImage]); 
CGContextSetBlendMode(context, kCGBlendModeOverlay); 
CGContextDrawImage(context, rect, [tmpImage CGImage]); 

[transformationView setImage:UIGraphicsGetImageFromCurrentImageContext()]; 
UIGraphicsEndImageContext(); 

В дополнение: иногда он прекрасно работает, без проблем. Иногда он просто накладывается и не смешивается. Другие это сбой iphone.

ответ

4

Вроде бы основная проблема заключалась в том, чтобы редактировать один и тот же CGImage каждый раз. Чтобы избавиться от него, я использовал

CGImageCreateCopy(sourceImage.CGImage); 

Прямо сейчас, я больше не получаю сбоев. Если кто-то может дать лучшее объяснение этому, я ценю.

С уважением

Смежные вопросы