支付宝后台模糊效果

这篇博客介绍了如何在iOS中实现类似支付宝后台的模糊效果。通过创建UIImage的延展,利用vImageBoxConvolve_ARGB8888等函数进行模糊处理,并结合颜色饱和度调整,最终实现在应用进入后台时添加模糊视图,恢复活跃状态时移除的效果。
摘要由CSDN通过智能技术生成

首先,创建视图。这里我用storyboard拖的。道理是一样的,在这我就示范一下。


然后创建一个UIImage的延展。

//

//  UIImage+Fuzzy.m

//  后台模糊Demo

//

//  Created by fangfang on 15/4/17.

//  Copyright (c) 2015 Fangfang. All rights reserved.

//


#import "UIImage+Fuzzy.h"

#import <Accelerate/Accelerate.h>


@implementation UIImage (Fuzzy)



- (UIImage *)imageWithFuzzy

{

    return [self imgWithLightAlpha:0.1 radius:10 colorSaturationFactor:1];

}


- (UIImage *)imgWithLightAlpha:(CGFloat)alpha radius:(CGFloat)radius colorSaturationFactor:(CGFloat)colorSaturationFactor

{

    UIColor *tintColor = [UIColor colorWithWhite:1.0 alpha:alpha];

    return [self imgBluredWithRadius:radius tintColor:tintColor saturationDeltaFactor:colorSaturationFactor maskImage:nil];

}


// 内部方法,核心代码,封装了毛玻璃效果 参数:半径,颜色,色彩饱和度

- (UIImage *)imgBluredWithRadius:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage

{

    

    

    CGRect imageRect = { CGPointZero, self.size };

    UIImage *effectImage = self;

    

    BOOL hasBlur = blurRadius > __FLT_EPSILON__;

    BOOL hasSaturationChange = fabs(saturationDeltaFactor - 1.) > __FLT_EPSILON__;

    if (hasBlur || hasSaturationChange) {

        UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]);

        CGContextRef effectInContext = UIGraphicsGetCurrentContext();

        CGContextScaleCTM(effectInContext, 1.0, -1.0);

        CGContextTranslateCTM(effectInContext, 0, -self.size.height);

        CGContextDrawImage(effectInContext, imageRect, self.CGImage);

        

        vImage_Buffer effectInBuffer;

        effectInBuffer.data     = CGBitmapContextGetData(effectInContext);

        effectInBuffer.width    = CGBitmapContextGetWidth(effectInContext);

        effectIn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>