2012-03-08 1 views
0

CoreAction으로 마스크를 렌더링 할 수 없기 때문에 마스크를 사용하여 이미지를 성공적으로 저장하기위한 해결 방법이 조금 있습니다.CGContext에 레이어하는 방법

CGContextRef context = CGBitmapContextCreate(nil, cWidth, cHeight, bitsPerComponent, bytesPerRow, CGColorSpaceCreateDeviceRGB(), CGImageGetBitmapInfo(image)); 
//the mask: 
CGContextClipToMask(context, CGRectMake(0,0,1280,935), self.image.image.CGImage); 
//the image to mask: 
CGContextDrawImage(context, CGRectMake(0, 0, 1280,935), viewImage.CGImage); 

CGImageRef mergeResult = CGBitmapContextCreateImage(context); 
    saver = [[UIImage alloc] initWithCGImage:mergeResult]; 

그래서이 꽤 잘 작동, 마스크가 대상 이미지의 모양 이외의 모든 것을 잘라 :

여기 내 코드입니다. 주변 지역과 흰색을 흰색으로 만듭니다. 흰색을 보여주기보다는 이미지/색상/패턴 등을 보여주고 싶습니다. 그래서 기본적으로 다른 이미지를 쌓고 싶습니다.

어떻게이 작업을 수행 할 수 있습니까? 감사합니다.

답변

1

배경을 배경에 먼저 그린 다음 클립으로 그린 ​​다음 이미지를 동일한 컨텍스트로 그립니다.

+0

안녕하세요, 저는 실제로 이것을 시도했지만 아무 소용이 없습니다. 첫 번째 CGContextDrawImage가 전체를 대신 차지하는 것으로 나타납니다. – user339946

+0

사실, 긁어. 이것은 내 실수입니다. 착시가 내 마스크가 나타나지 않는다고 생각하면서 속이고있었습니다. 고맙습니다 – user339946

관련 문제