2012-05-30 2 views
1

필터 효과 일부 경고 표시 값 비싼 패딩 작업 수행 중! 이미지 적용 후 메모리 누수가 있습니까?값 비싼 패딩 작업 수행

내 코드는 다음과 같습니다 -

 CIImage *imagee = [Filter outputImage]; 
     CIContext *context = [CIContext contextWithOptions:nil]; 
     CGImageRef cgImage = [context createCGImage: 
           imagee fromRect: imagee.extent]; 
     UIImage *resultUIImage = [[UIImage alloc ]initWithCGImage: cgImage]; 
     image=resultUIImage; 
     CGImageRelease(cgImage); 
     cgImage=nil; 
     SaveImage=image; 
     [resultUIImage release]; 
+0

참조 http://stackoverflow.com/questions/8172838/performing-a-costly-unpadding-operation-what-is-it-and-how-to-fix-it. 콘솔 경고는 필자의 경우 맥락을 발표하는 것과 반드시 ​​관련이 없었다. –

+0

정확한 메시지 란 무엇이며 어떤 메시지를 가리키고 있습니까? –

답변

2

당신이 가장 가능성이 누출 코코아 메모리 의미가 필요 (어디에서 오는 그 클래스 메소드는 +0 유지 카운트 개체를 반환 당신의 CIImage을 방출하지 않는 그래서 그들은 호출자에 의해 유지되어야합니다). 동시에 이미지 비싼 필터링을 수행하고 있습니다. 보시다시피, 이미지는 2^n 번째 바이트로 끝나는 지 확인하기 위해 여분의 두 바이트로 채워질 수 있습니다. 하지만 필터를로드하기 위해 iOS는 이미지 채우기를 수행해야합니다. 이미지를 가져 와서 바이트를 반복하여 패딩을 제거하는 데 시간이 걸립니다. 성능에 영향을주지 않으면 항상 백그라운드 스레드를 그릴 수 있습니다. CIImage 또는 UIImage가 얼마나 안전한지 모르지만 Core Graphics는 일반적으로 스레드 세이프입니다.

+0

감사합니다 !!! 그러나 CIContext를 공개하는 방법 ?? [CIContext release] ?? –

+0

네, 맞습니다. – CodaFi

+0

[문맥 출시] 내 앱이 다운됩니다. –