2013-08-07 3 views
0

CALayer를이 코드의 UIImage로 변환하려고합니다. post. 여기에 복사했습니다. 그러나 그것을 사용할 때 나는 많은 오류가있다. 처음에는 모델을 저장하는 데 사용하는 NSObject 클래스에 저장했습니다. 그러나 나는 그 게시물을 CALayer의 컨트롤러, 뷰 또는 카테고리에 넣으 려한다고 생각합니다. 나는 그것을 컨트롤러 나 CALayer에 넣으려고했으나 여전히 작동하지 않습니다.유효하지 않은 컨텍스트 0x0, CALayer에서 UIImage 만들기

- (UIImage *)imageFromLayer:(CALayer *)layer 
{ 

    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) 
     UIGraphicsBeginImageContextWithOptions([layer frame].size, NO, [UIScreen mainScreen].scale); 
    else 
     UIGraphicsBeginImageContext([layer frame].size); 

    [layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return outputImage; 
} 

ERROR :

<Error>: CGContextSetStrokeColorWithColor: invalid context 0x0 
<Error>: CGContextSetLineWidth: invalid context 0x0 
<Error>: CGContextMoveToPoint: invalid context 0x0 
<Error>: CGContextAddArc: invalid context 0x0 
<Error>: CGContextAddArc: invalid context 0x0 
<Error>: CGContextAddArc: invalid context 0x0 
<Error>: CGContextAddArc: invalid context 0x0 
<Error>: CGContextClosePath: invalid context 0x0 
<Error>: CGContextDrawPath: invalid context 0x0 
<Error>: CGContextRestoreGState: invalid context 0x0 
<Error>: CGContextRestoreGState: invalid context 0x0 
<Error>: CGContextSetBaseCTM: invalid context 0x0 
<Error>: CGContextRestoreGState: invalid context 0x0 
<Error>: CGContextEndTransparencyLayer: invalid context 0x0 
<Error>: CGContextRestoreGState: invalid context 0x0 
<Error>: CGContextSaveGState: invalid context 0x0 
<Error>: CGContextSetAlpha: invalid context 0x0 

답변

4

확인하여 계층 매개 변수가 nil 경우. 크기가 너비 = 0 또는 높이 = 0 (또는 둘 다)이면 일반적으로 컨텍스트를 만들 수 없습니다.

관련 문제