How to Mask an Image [iOS developer:tips];
白黒の画像をマスクとして、画像を任意の形に切り抜くことが出来ます。
上記の例はとても単純ですが、マスク画像を工夫すれば、複雑な形の画像もプログラムから簡単に作成できます。
//元画像 UIImage *iconImage = [UIImage imageNamed:@"apple-touch-icon.png"]; //マスク画像 UIImage *maskImage = [UIImage imageNamed:@"mask.png"]; //マスク画像をCGImageに変換する CGImageRef maskRef = maskImage.CGImage; //マスクを作成する CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, false); //マスクの形に切り抜く CGImageRef masked = CGImageCreateWithMask([iconImage CGImage], mask); //CGImageをUIImageに変換する UIImage *maskedImage = [UIImage imageWithCGImage:masked]; CGImageRelease(mask); CGImageRelease(masked);