iOS实现毛玻璃效果(无需要第三方)

本文实例分享两种iOS毛玻璃效果设置的方法,不需要任何第三方,先看效果:

原图:

方法一(iOS8系统方法):

方法二:

下面是示例代码:

#import "ViewController.h" 

@interface ViewController ()
{
 UIImageView *_imageView;
}
@end 

@implementation ViewController 

- (void)viewDidLoad {
 [super viewDidLoad];
 _imageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
 _imageView.image = [UIImage imageNamed:@"1.jpg"];
 [self.view addSubview:_imageView]; 

 //方法一:系统方法,iOS8及以上可用
 if (!UIAccessibilityIsReduceTransparencyEnabled()) {
 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark];
 UIVisualEffectView *blurEffectView = [[UIVisualEffectView alloc]initWithEffect:blurEffect];
 blurEffectView.frame = _imageView.bounds;
 [_imageView addSubview:blurEffectView];
 } 

 //方法二:Core Image
 UIImageView *blurImageView = [[UIImageView alloc]initWithFrame:_imageView.bounds];
 blurImageView.image = [self blur:[UIImage imageNamed:@"1.jpg"]];
 [_imageView addSubview:blurImageView];
} 

//生成一张毛玻璃图片
- (UIImage*)blur:(UIImage*)theImage
{
 CIContext *context = [CIContext contextWithOptions:nil];
 CIImage *inputImage = [CIImage imageWithCGImage:theImage.CGImage]; 

 CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
 [filter setValue:inputImage forKey:kCIInputImageKey];
 [filter setValue:[NSNumber numberWithFloat:15.0f] forKey:@"inputRadius"];
 CIImage *result = [filter valueForKey:kCIOutputImageKey]; 

 CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]]; 

 UIImage *returnImage = [UIImage imageWithCGImage:cgImage];
 CGImageRelease(cgImage);
 return returnImage;
} 

- (void)didReceiveMemoryWarning {
 [super didReceiveMemoryWarning];
 // Dispose of any resources that can be recreated.
} 

@end 

具体效果和参数自行研究吧!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android中实现iOS中的毛玻璃效果
  • iOS自定义collectionView实现毛玻璃效果
  • IOS图片设置毛玻璃效果
  • iOS毛玻璃效果的实现及图片模糊效果的三种方法
  • iOS7 毛玻璃特效代码
  • iOS 8使用UIBlurEffect实现毛玻璃特效
(0)

相关推荐

  • Android中实现iOS中的毛玻璃效果

    为了实现毛玻璃效果,我们需要一组compute kernels(.rs文件中编写),及一组用于控制renderScript相关的Javaapi(.rs文件自动生成为Java类). 由于compute kernels的编写需要一定的学习成本,从JELLY_BEAN_MR1开始,Androied内置了一些compute kernels用于常用的操作,其中就包括了Gaussian blur. 下面,通过实操来讲解一下RenderScript来实现高斯模糊,最终实现效果(讲文字背景进行模糊处理): 实现

  • iOS毛玻璃效果的实现及图片模糊效果的三种方法

    App设计时往往会用到一些模糊效果或者毛玻璃效果,iOS目前已提供一些模糊API可以让我们方便是使用. 话说苹果在iOS7.0之后,很多系统界面都使用了毛玻璃效果,增加了界面的美观性,比如下图的通知中心界面; 但是其iOS7.0的SDK并没有提供给开发者实现毛玻璃效果的API,所以很多人都是通过一些别人封装的框架来实现,后面我也会讲到一个; 其实在iOS7.0(包括)之前还是有系统的类可以实现毛玻璃效果的, 就是 UIToolbar这个类,并且使用相当简单,几行代码就可以搞定. 下面是代码实现:

  • iOS 8使用UIBlurEffect实现毛玻璃特效

    iOS 8 后使用UIBlurEffect 类和UIVisualEffectView 类添加毛玻璃特效更加便捷,高效. //创建ImageView IImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"5"]]; // 创建需要的毛玻璃特效类型 /** * UIBlurEffectStyleExtraLight, * UIBlurEffectStyleLight, * UIBlu

  • iOS自定义collectionView实现毛玻璃效果

    先来看看效果图,由于录屏软件不给力,毛玻璃效果不明显,请见谅. 步骤详解: 说下思路,很简单,首先自定义一个collectionView, 重写它的initWithFrame:collectionViewLayout:方法,在这里面做配置,这里用的是AXECollectionView. 与之对应的自定义一个collectionViewCell,在cell里配置操作:设置layer涂层,加载图片等操作,这里用的是AXECollectionViewCell. 最后在需要展示的控制器里调用AXECol

  • IOS图片设置毛玻璃效果

    推荐阅读:ios毛玻璃效果的实现及图片模糊效果的三种方法 废话不多说了,直接给大家贴代码了,具体代码如下所示: // 创建需要的毛玻璃特效类型 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; // 毛玻璃view 视图 UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blurEf

  • iOS7 毛玻璃特效代码

    原图: 效果图: 实现: 首先需要导入Accelerate.framework. 然后把两个文件加入到自己的项目中即可. UIImage+ImageEffects.h 复制代码 代码如下: #import @interfaceUIImage(ImageEffects) -(UIImage*)applyLightEffect; -(UIImage*)applyExtraLightEffect; -(UIImage*)applyDarkEffect; -(UIImage*)applyTintEffe

  • iOS实现毛玻璃效果(无需要第三方)

    本文实例分享两种iOS毛玻璃效果设置的方法,不需要任何第三方,先看效果: 原图: 方法一(iOS8系统方法): 方法二: 下面是示例代码: #import "ViewController.h" @interface ViewController () { UIImageView *_imageView; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _imageView

  • Android 高仿微信语音聊天页面高斯模糊(毛玻璃效果)

    目前的应用市场上,使用毛玻璃效果的APP随处可见,比如用过微信语音聊天的人可以发现,语音聊天页面就使用了高斯模糊效果. 先看下效果图: 仔细观察上图,我们可以发现,背景图以用户头像为模板,对其进行了高斯模糊,并把它作为整个页面的背景色. 关于Android如何快速实现高斯模糊(毛玻璃效果),网上一堆相关介绍,可参考下面文章一种快速毛玻璃虚化效果实现–Android. 下面直接给出模糊化工具类(已验证可行): import android.graphics.Bitmap; /** * 快速模糊化工

  • Android模糊处理简单实现毛玻璃效果

    自从iOS系统引入了Blur效果,也就是所谓的毛玻璃.模糊化效果.磨砂效果,各大系统就开始竞相模仿,这是怎样的一个效果呢,我们先来看一下,如下面的图片: 实现效果大家都知道了,如何在Android中实现呢,说白了就是对图片进行模糊化处理,小编先给大家讲一下Android高级模糊技术的原理,如下: 首先我创建了一个空的bitmap,把背景的一部分复制进去,之后我会对这个bitmap进行模糊处理并设置为TextView的背景. 通过这个bitmap保存Canvas的状态: 在父布局文件中把Canva

  • Android实现毛玻璃效果弹出菜单动画

    本文实例为大家分享了Android实现毛玻璃效果弹出菜单动画的具体代码,供大家参考,具体内容如下 仿ios上屏幕下方向上滑出来的一个模糊菜单,效果如下 原理很简单,页面上原来有一个gone的framelayout,调用方法让它弹出的时候加了一个位移动画,让它从底部出来,出来的时候给这个framelayout里的一个imageView设置一个模糊后的截屏图片,并且这个图片也加一个相同时间的反方向位移动画,这个demo里用到的Blur模糊类和自定义imageView可以去我前两篇博客上找到. 这里面

  • Android开发之毛玻璃效果实例代码

    这是在网上找的,不过忘了在哪里找的,经过很多比较测试,发现这个方法不会 oom,目前来看 我一直没有遇过,今天才找到这个以前建立的工程,记录下来: 先给大家展示下效果图: public class FastBlur { public static Bitmap doBlur(Bitmap sentBitmap, int radius, boolean canReuseInBitmap) { // This is a compromise between Gaussian Blur and Box

  • Android学习教程之图片毛玻璃效果(4)

    本教程为大家分享了Android毛玻璃效果的具体代码,供大家参考,具体内容如下 BlurimageActivity.java代码: package com.siso.crazyworld; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v7.app.AppCompatActivit

随机推荐