iOS view模糊背景

 1 /**
 2  *  模糊背景
 3  *
 4  *  @param image    需要模糊的图片
 5  *  @param blur     高斯模糊的值
 6  *
 7  *  @return
 8  */
 9 - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur
10 {
11     if ((blur < 0.0f) || (blur > 1.0f)) {
12         blur = 0.5f;
13     }
14
15     int boxSize = (int)(blur * 100);
16     boxSize -= (boxSize % 2) + 1;
17
18     CGImageRef img = image.CGImage;
19
20     vImage_Buffer inBuffer, outBuffer;
21     vImage_Error error;
22     void *pixelBuffer;
23
24     CGDataProviderRef inProvider = CGImageGetDataProvider(img);
25     CFDataRef inBitmapData = CGDataProviderCopyData(inProvider);
26
27     inBuffer.width = CGImageGetWidth(img);
28     inBuffer.height = CGImageGetHeight(img);
29     inBuffer.rowBytes = CGImageGetBytesPerRow(img);
30     inBuffer.data = (void*)CFDataGetBytePtr(inBitmapData);
31
32     pixelBuffer = malloc(CGImageGetBytesPerRow(img) * CGImageGetHeight(img));
33
34     outBuffer.data = pixelBuffer;
35     outBuffer.width = CGImageGetWidth(img);
36     outBuffer.height = CGImageGetHeight(img);
37     outBuffer.rowBytes = CGImageGetBytesPerRow(img);
38
39     error = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer, NULL, 0, 0, boxSize, boxSize, NULL, kvImageEdgeExtend);
40
41     CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
42     CGContextRef ctx = CGBitmapContextCreate(outBuffer.data, outBuffer.width, outBuffer.height, 8, outBuffer.rowBytes, colorSpace, CGImageGetBitmapInfo(image.CGImage));
43
44     CGImageRef imageRef = CGBitmapContextCreateImage (ctx);
45     UIImage *returnImage = [UIImage imageWithCGImage:imageRef];
46
47     //clean up
48     CGContextRelease(ctx);
49     CGColorSpaceRelease(colorSpace);
50
51     free(pixelBuffer);
52     CFRelease(inBitmapData);
53
54     CGColorSpaceRelease(colorSpace);
55     CGImageRelease(imageRef);
56
57     return returnImage;
58 }
时间: 2024-10-19 14:04:46

iOS view模糊背景的相关文章

IOS 图片模糊处理 ------ 直接代码 复制出去就可用 值得标记

1. UIImage *imag = [UIImage imageNamed:@"img"]; /* --------------------使用 coreImg  ---------------------------  */ // CIImage CIImage *ciimg = [[CIImage alloc] initWithImage:imag]; // CIFilter CIFilter *blurFilter =     [CIFilter filterWithName:

iOS中点击背景收键盘

这一次给大家带来的是ios中点击背景如何收键盘 直接上图: file:///Users/a504-18/Desktop/屏幕快照%202016-03-17%20下午7.35.07.png 先创建一个这样的页面,把两个文本框进行连线: file:///Users/a504-18/Desktop/屏幕快照%202016-03-17%20下午7.36.57.png 其实,很简单,视图控制器有一个view属性,是从UIViewController继承来的.这个view属性对应的nib文件中的View.使

Windows 10 应用创建模糊背景窗口的三种方法

原文 Windows 10 应用创建模糊背景窗口的三种方法 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了.iOS/Mac 和 Windows 系统都对此有支持. 本文将介绍三种创建模糊背景窗口的方法.有人可能喜欢称之为毛玻璃窗口.亚克力窗口. This post is written in multiple languages. Please select yours: 最早我是在 StackOverflow 上回答一位网友的提问时

iOS View 模糊效果(毛玻璃)

相关资料 http://stackoverflow.com/questions/18404907/using-gpuimage-to-recreate-ios-7-glass-effect http://stackoverflow.com/questions/17036655/ios-7-style-blur-view/17048668#17048668 我没有用GPUImge  使用了  FXBlurView which works great on iOS5+ 只有两个文件 https://

解决 iOS View Controller Push/Pop 时的黑影

那么如何解决这个问题呢? 实际上很简单,如果这个 ViewController 是在 TabBarViewController 的 NavigationController 上 Push/Pop 的,那么只需要把 TabBarViewController 的 View 设置一下白色背景就可以了. 亲测设置NavigationController上的View的背景颜色为白色也可以解决.

iOS view和viewController的生命周期

转自:http://blog.sina.com.cn/s/blog_801997310101a39w.html 一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并在不需要的时候卸载视图,所以也同时担当了管理应用资源的责任 二.ViewController的生命周期 View是指Controller的View.它作为Controler的属性,生命周期

用图片来设置View的背景颜色(结合Quartz2D)

         UIImage *oldImage = [UIImage imageNamed:@"car"];          //旧图片的尺寸和View不匹配,使用Quartz2D生成新图片     UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0);     [oldImage drawInRect:self.view.bounds];     UIImage *newImage = UI

ios view的创建过程

师傅发我一堆view的创建函数,目的让我知道view的创建过程. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewW

获取res/values/color中色值的方法,给view设置背景

我们一般会把界面上展示的颜色抽取到res/values/color中,这样方便的获取,也方便同意管理. 那么我们怎样获取color文件中的色值,并且给我iview设置背景的颜色呢. 第一种: 如果你在color中是这样写的,<color name="item1">#eed776</color> 那么在给view色值背景的时候,应该这样获取 view.setBackgroundColor(context.getResources().getColor(R.colo