2010-03-24 7 views
3

저는 약 2 일 동안 두 UIImage를 조화 시키려고 노력했으며 일부 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(); 

보완 : 때로는 완벽하게 작동하며 문제가되지 않습니다. 때로는 단순히 오버레이되어 혼합되지 않습니다. 그것은 아이폰을 충돌시키는 다른 것들.

답변

4

명백하게, 주된 문제는 매번 동일한 CGImage를 편집하는 것이 었습니다. 그것을 없애기 위해서, 나는

CGImageCreateCopy(sourceImage.CGImage); 

지금 당장, 나는 더 이상 충돌을 느끼지 않을 것이다. 누구든지 이에 대한 더 나은 설명을 줄 수 있다면 감사하게 생각합니다.

감사합니다.

관련 문제