en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

4.12.2011

CoreGraphic 遮色片應用

 

遮色片(遮罩濾鏡)在影處理方面是很常被使用的技巧之一,而 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();

註:遮色片的背景應為透明色,本範例的遮色片為求顯示清楚,已將背景更改為純白。





沒有留言:

張貼留言