그레이 스케일 UIImage 마스크를 UIImage에 적용하는 코드를 많이 빌려 왔습니다 (표준). 그때 파일에 imageView.image을 저장UIImage 마스킹 문제 iOS 7
- (void) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef imageRef = image.CGImage; // main UIImage
CGImageRef maskRef = maskImage.CGImage; // grayscale UIImage mask
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask(imageRef, mask);
maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(mask);
CGImageRelease(masked);
imageView.image = maskedImage;
}. 이 코드는 iOS 6 및 6.1의 매력처럼 작동합니다. 저장된 이미지는 마스크가 적용된 주 UIImage를 포함합니다. 그러나, 나는이 코드가 iOS 7 (iPhone)에서 같은 방식으로 수행되지 않는다는 것을 알아 챘습니다. iOS 7에서는 저장된 이미지에 마스크가 적용되지 않은 주 UIImage 만 포함되어 있습니다. 문제가 CGImageCreateWithMask() 메서드에 있는지 또는 다른 곳에 있는지 확실하지 않습니다.
어떤 통찰력도 인정 될 것입니다. 미리 감사드립니다.
오른쪽에 @ dangel. 상자에서 꺼내지면서 나에게 완벽하게 작동했습니다. – kubi
완벽하게 일했습니다, 고마워요! –