我有一个UIImageView
可以移动/缩放的 ( self.imageForEditing
)。在这个图像视图的顶部,我有一个带孔的覆盖层,它是静态的,不能移动。我只需要保存按下按钮时通过孔可见的底层图像的一部分。我目前的尝试:
- (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
可以移动的事实?