iOS高斯模糊&毛玻璃效果

高斯模糊

需要引入<Accelerate/Accelerate.h>類凛捏,一般封裝到image的分類中吞瞪,以便使用箩朴,下面是代碼岗喉,其中blur為模糊程度

#import <Accelerate/Accelerate.h>

/**
 高斯模糊
 @param image image
 @param blur (0 - 1 之間)
 @return image
 */
+(UIImage *)boxblurImage:(UIImage *)image withBlurNumber:(CGFloat)blur
{
    if (blur < 0.f || blur > 1.f) {
        blur = 0.5f;
    }
    
    int boxSize     = (int)(blur * 100); //100為最大模糊程度
    boxSize         = boxSize - (boxSize % 2) + 1;
    CGImageRef img  = image.CGImage;
    
    vImage_Buffer     inBuffer, outBuffer;
    vImage_Error      error;
    
    //從CGImage中獲取數(shù)據(jù)
    CGDataProviderRef inProvider = CGImageGetDataProvider(img);
    CFDataRef inBitmapData       = CGDataProviderCopyData(inProvider);
    
    //設(shè)置從CGImage獲取對(duì)象的屬性
    void *pixelBuffer;
    inBuffer.width      = CGImageGetWidth(img);
    inBuffer.height     = CGImageGetHeight(img);
    inBuffer.rowBytes   = CGImageGetBytesPerRow(img);
    inBuffer.data       = (void*)CFDataGetBytePtr(inBitmapData);
    pixelBuffer         = malloc(CGImageGetBytesPerRow(img) * CGImageGetHeight(img));
    if(!pixelBuffer)
        NSLog(@"No pixelbuffer");
    outBuffer.data      = pixelBuffer;
    outBuffer.width     = CGImageGetWidth(img);
    outBuffer.height    = CGImageGetHeight(img);
    outBuffer.rowBytes  = CGImageGetBytesPerRow(img);
    error = vImageBoxConvolve_ARGB8888(&inBuffer,
                                       &outBuffer,
                                       NULL,
                                       0,
                                       0,
                                       boxSize,
                                       boxSize,
                                       NULL,
                                       kvImageEdgeExtend);
    if (error) {
        NSLog(@"error from convolution %ld", error);
    }
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef ctx = CGBitmapContextCreate( outBuffer.data,
                                             outBuffer.width,
                                             outBuffer.height,
                                             8,
                                             outBuffer.rowBytes,
                                             colorSpace,
                                             kCGImageAlphaNoneSkipLast);
    CGImageRef imageRef  = CGBitmapContextCreateImage (ctx);
    UIImage *returnImage = [UIImage imageWithCGImage:imageRef];
    
    //清除;
    CGContextRelease(ctx);
    CGColorSpaceRelease(colorSpace);
    free(pixelBuffer);
    CFRelease(inBitmapData);
    CGImageRelease(imageRef);
    
    return returnImage;
}

&毛玻璃效果

毛玻璃效果實(shí)現(xiàn)有很多種,大致都是用蒙版的方式實(shí)現(xiàn)如toolbar去做蒙版炸庞,但是由于toolbar的表現(xiàn)不太好钱床,在對(duì)接的地方會(huì)出現(xiàn)白邊,所以我用iOS8出現(xiàn)的模糊處理類去做蒙版

    //需要做模糊效果的圖片
    UIImageView *testView = [[UIImageView alloc]initWithFrame:self.view.bounds];
    [self.view addSubview:testView];

    //實(shí)現(xiàn)模糊效果
    UIBlurEffect *blurEffrct =[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    
    //毛玻璃視圖
    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffrct];
    
    visualEffectView.frame = self.view.bounds;

    //設(shè)置透明度
    visualEffectView.alpha = 0.9;
    
    [self.view addSubview:visualEffectView];

切記testView和蒙版的順序不要放反了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末埠居,一起剝皮案震驚了整個(gè)濱河市查牌,隨后出現(xiàn)的幾起案子事期,更是在濱河造成了極大的恐慌,老刑警劉巖纸颜,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兽泣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡懂衩,警方通過(guò)查閱死者的電腦和手機(jī)撞叨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浊洞,“玉大人牵敷,你說(shuō)我怎么就攤上這事》ㄏ#” “怎么了枷餐?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)苫亦。 經(jīng)常有香客問(wèn)我毛肋,道長(zhǎng),這世上最難降的妖魔是什么屋剑? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任润匙,我火速辦了婚禮,結(jié)果婚禮上唉匾,老公的妹妹穿的比我還像新娘孕讳。我一直安慰自己,他們只是感情好巍膘,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布厂财。 她就那樣靜靜地躺著,像睡著了一般峡懈。 火紅的嫁衣襯著肌膚如雪璃饱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天肪康,我揣著相機(jī)與錄音荚恶,去河邊找鬼。 笑死梅鹦,一個(gè)胖子當(dāng)著我的面吹牛裆甩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播齐唆,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼嗤栓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起茉帅,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤叨叙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后堪澎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體擂错,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年樱蛤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钮呀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昨凡,死狀恐怖爽醋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情便脊,我是刑警寧澤蚂四,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站哪痰,受9級(jí)特大地震影響遂赠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晌杰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一跷睦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肋演,春花似錦送讲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)监右。三九已至边灭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健盒,已是汗流浹背绒瘦。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扣癣,地道東北人惰帽。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像父虑,于是被迫代替她去往敵國(guó)和親该酗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • iOS開發(fā)中有的時(shí)候需要將圖片設(shè)置模糊,來(lái)實(shí)現(xiàn)特定的效果獲取更好的用戶體驗(yàn), iOS7之后半透明模糊效果得到大范圍...
    零距離仰望星空閱讀 46,552評(píng)論 47 223
  • 劇情介紹 在iOS開發(fā)中呜魄,經(jīng)常會(huì)看到毛玻璃效果悔叽,也叫模糊效果,比如系統(tǒng)的通知中心爵嗅,這個(gè)很時(shí)髦的效果增加了美觀性娇澎。 ...
    NotFunGuy閱讀 8,210評(píng)論 9 38
  • 話說(shuō)蘋果在iOS7.0之后,很多系統(tǒng)界面都使用了毛玻璃效果,增加了界面的美觀性,比如下圖的通知中心界面; 效果圖:...
    Mr_董閱讀 1,309評(píng)論 0 0
  • ?五行山下五百年,野性難尋眉宇間睹晒。一入佛門深似海趟庄,從此大圣枉齊天。 ?
    執(zhí)劍人k閱讀 307評(píng)論 0 0
  • 2017.11.17 星期五 大風(fēng)雨 呼嘯的北風(fēng)伪很,刮得一片蒼涼戚啥。穿得嚴(yán)實(shí)的人們,挺著冷風(fēng)前行是掰。真正的冬天來(lái)了虑鼎!...
    欣憑閱讀 144評(píng)論 0 0