[iPhone] UIImage 에 마스크 씌우기

UIImage에 마스크를 씌워 특정 영역을 제외하고는 투명처리를 하는 방법입니다. 길게 설명할 필요없이 예제를 보시죠.

[code]CGImageRef imageRef = [[UIImage imageNamed:@”sample.jpg”] CGImage];
CGImageRef maskRef = [[UIImage imageNamed:@”mask.png”] CGImage];
   
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                    CGImageGetHeight(maskRef),
                                    CGImageGetBitsPerComponent(maskRef),
                                    CGImageGetBitsPerPixel(maskRef),
                                    CGImageGetBytesPerRow(maskRef),
                                    CGImageGetDataProvider(maskRef),
                                    NULL, false);
   
CGImageRef masked = CGImageCreateWithMask(imageRef, mask);
CGImageRelease(mask);
   
UIImage *maskedImage = [UIImage imageWithCGImage:masked];
CGImageRelease(masked);[/code]

사용자 삽입 이미지결과적으로 위와 같이 마스크를 씌워 마스크 이외의 영역을 투명처리 할 수 있습니다.

여기서 주의할 점은 mask.jpg에는 투명 영역이 존재하면 안됩니다. 투명으로 처리할 영역은 흰색으로 되어있어야 합니다.
참고 :