UIView
에는 2 프레임이 포함 된 UIImageViews
- 프레임 뒤쪽의 그림이 있습니다. 프레임은 사각형이 아니며 불규칙한 모양입니다. 사용자는 프레임 뒤의 그림 (줌, 회전 및 팬)을 조작 할 수 있으며 완료되면 그림과 프레임이 아닌 프레임 내의 그림 컷 아웃을 캡처하려고합니다. 내가 할 수있는 방법이 있니?UIImage 컷 아웃 만들기
그림과 프레임을 아래 그림과 같이 하나의 이미지로 병합하는 데 성공했습니다. 그러나 추출한 이미지가 프레임 모양의 테두리를 가질 경우에만 이미지가 필요합니다.
- (IBAction)renderPhoto:(id)sender {
//Combine the layers into a single image
UIView *canvas = [[[sender superview] subviews] objectAtIndex:0];
UIGraphicsBeginImageContext(canvas.bounds.size);
[canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
좋습니다 ... 가이드를 들여다보고 있습니다. 한 가지 질문 - Quartz 생성 함수로 이미지를 만드는 방법은 무엇입니까? 그런 다음 'CGContextClipToMask (combinedImage, CGRectMake (0, 0, combinedImage.size.width, combinedImage.size.height), mask)'와 같은 작업을 수행합니다. 내 결합 된 이미지로? – Smikey
UIImage의 CGImage 속성을 통해 CGImage를 얻을 수 있습니다. 'UIGraphicsBeginImageContext'를 호출 한 후 CGContext : CGContextRef cgContext = UIGraphicsGetCurrentContext();를 얻을 수 있습니다. CGContextClipToMask를 호출 한 후 대상 이미지의 그림을 컨텍스트에 적용해야합니다 (결합 된 프레임 이미지가 아닌 프레임 이미지 만 전달 함 - 기본적으로 후속 드로잉 작업에 영향을 미치므로 드로잉을 생략 함). 프레임이 떨어지는 곳). – Clafou