雖然ios很早就支援使用模糊效果對等進行處理,在ios7以後,半透明模糊效果得到大範圍廣泛使用。包括今年最新發布的ios8也沿襲了這一設計,甚至在os x 10.10以後也大量使用半透明模糊。
在ios開發當中,我們有很多選擇可以做半透明模糊效果,下面就說一下常用的方式,工具。
0.core image
在ios和os x平台上,core image都提供了大量的濾鏡(filter),這也是core image庫中比較核心的東西之一。按照官方文件記載,在os x上有120多種filter,在ios上也有90多。
core image的模糊**:
cicontext *context = [cicontext contextwithoptions:nil];
ciimage *image = [ciimage imagewithcontentsofurl:imageurl];
cifilter *filter = [cifilter filterwithname:@"cigaussianblur"];
[filter setvalue:image forkey:kciinputimagekey];
[filter setvalue:@2.0f forkey: @"inputradius"];
ciimage *result = [filter valueforkey:kcioutputimagekey];
cgimageref outimage = [context createcgimage: result fromrect:[result extent]];
uiimage * blurimage = [uiimage imagewithcgimage:outimage];
這裡可以看到,core image為了做得比較靈活,filter都是按字串的名字去建立的,比如高斯模糊濾鏡就是「cigaussianblur」,這裡有乙個
除了這裡提到的多種filter之外,core image還提供了cidetector等類,可以支援人臉識別等,在os x上core image也做了很多支援。
1.gpuimage
同樣是高斯模糊,用gpuimage可以這樣:
gpuimagegaussianblurfilter * blurfilter = [[gpuimagegaussianblurfilter alloc] init];
blurfilter.blurradiusinpixels = 2.0;
uiimage * image = [uiimage imagenamed:@"***"];
uiimage *blurredimage = [blurfilter imagebyfilteringimage:image];
至少看起來,**上比使用core image的情況簡單很多。
2.vlmage
accelerate這個framework主要是用來做數字訊號處理、影象處理相關的向量、矩陣運算的庫。我們可以認為我們的影象都是有向量或者矩陣資料構成的,accelerate裡既然提供了高效的數**算api,自然就能方便我們對影象做各種各樣的處理。
基於vlmage我們可以根據影象的處理原理直接做模糊效果,或者使用現有的工具。uiimage+imageeffects是個很好的影象處理庫,看名字也知道是對uiimage做的分類擴充套件。這個工具被廣泛使用著。
3.效能與選擇
既然已經知道了3個方法做到半透明模糊效果,那麼我們要用的時候應該選擇哪個呢?
系統版本上來考慮的話,這幾個都沒問題,基本來說ios5之後很成熟了。
影象模糊處理是恨複雜的計算,最終是要看效能,這個上面來說,vlmage更好一點吧。
在幾個機型上測試,5c 5s,在模糊半徑(blur radius)達到10左右的時候,配合動畫,vlmage的處理時間會明顯比較短,不會「卡頓」。
iOS開發使用半透明模糊效果方法整理
雖然ios很早就支援使用模糊效果對等進行處理,但尤其在ios7以後,半透明模糊效果得到大範圍廣泛使用。包括今年最新發布的ios8也沿襲了這一設計,甚至在os x 10.10版yosemite中也開始大量使用半透明模糊。在ios開發當中,我們有很多選擇可以做半透明模糊效果,下面就是一些常見的方式或者說...
iOS開發使用半透明模糊效果方法整理
雖然ios很早就支援使用模糊效果對等進行處理,但尤其在ios7以後,半透明模糊效果得到大範圍廣泛使用。包括今年最新發布的ios8也沿襲了這一設計,甚至在os x 10.10版yosemite中也開始大量使用半透明模糊。在ios開發當中,我們有很多選擇可以做半透明模糊效果,下面就是一些常見的方式或者說...
iOS開發使用半透明模糊效果方法整理
雖然ios很早就支援使用模糊效果對等進行處理,但尤其在ios7以後,半透明模糊效果得到大範圍廣泛使用。包括今年最新發布的ios8也沿襲了這一設計,甚至在os x 10.10版yosemite中也開始大量使用半透明模糊。在ios開發當中,我們有很多選擇可以做半透明模糊效果,下面就是一些常見的方式或者說...