이동/크기 조정이 가능한 UIImageView
이 있습니다 (self.imageForEditing
). 이 이미지 뷰 위에는 고정되어 있고 이동할 수없는 구멍이있는 오버레이가 있습니다. 단추를 누를 때 구멍을 통해 보이는 기본 이미지의 일부만 저장해야합니다. 내 현재 시도 :마스크를 사용하여 UIImage를 저장하는 방법
- (IBAction)saveImage
{
UIImage *image = self.imageForEditing.image;
CGImageRef originalMask = [UIImage imageNamed:@"picOverlay"].CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(originalMask),
CGImageGetHeight(originalMask),
CGImageGetBitsPerComponent(originalMask),
CGImageGetBitsPerPixel(originalMask),
CGImageGetBytesPerRow(originalMask),
CGImageGetDataProvider(originalMask), nil, YES);
CGImageRef maskedImageRef = CGImageCreateWithMask(image.CGImage, mask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef scale:image.scale orientation:image.imageOrientation];
CGImageRelease(mask);
CGImageRelease(maskedImageRef);
UIImageView *test = [[UIImageView alloc] initWithImage:maskedImage];
[self.view addSubview:test];
}
테스트로 나는 새로 만든 이미지를 화면 왼쪽 상단에 추가하려고합니다. 이론적으로 작은 둥근 이미지 (오버레이를 통해 보이는 부분) 여야합니다. 그러나 나는 전체 이미지가 다시 생성되는 중입니다. 내가 도대체 뭘 잘못하고있는 겁니까? 그리고 self.imageForEditing
을 이동할 수 있다는 사실을 어떻게 설명 할 수 있습니까?