遮色片(遮罩濾鏡)在影處理方面是很常被使用的技巧之一,而 iOS SDK 也有提供此功能,只要使用幾個簡單的 CoreGraphics 指令就可以輕鬆達到遮色片的效果,其程式碼如下。
程式碼實做的部份,是將我們的 Logo 與自製的遮罩做結合。
UIImage *iconImage = [UIImage imageNamed:@"logo.png"];
UIImage *maskImage = [UIImage imageNamed:@"mask.png"];
UIGraphicsBeginImageContext(iconImage.size);
//設定參考範圍
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, 1, -1);
CGRect region = CGRectMake(0, 0, iconImage.size.width, iconImage.size.height);
CGContextTranslateCTM(context, 0, -region.size.height);
//將context做遮罩範圍的切割再draw
CGContextClipToMask(context, region, maskImage.CGImage);
CGContextDrawImage(context, region, iconImage.CGImage);
//將影像指定給imageView
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
註:遮色片的背景應為透明色,本範例的遮色片為求顯示清楚,已將背景更改為純白。
沒有留言:
張貼留言