iOS view模糊背景
2015-06-23 17:16
381 查看
/** * 模糊背景 * * @param image 需要模糊的图片 * @param blur 高斯模糊的值 * * @return */ - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur { if ((blur < 0.0f) || (blur > 1.0f)) { blur = 0.5f; } int boxSize = (int)(blur * 100); boxSize -= (boxSize % 2) + 1; CGImageRef img = image.CGImage; vImage_Buffer inBuffer, outBuffer; vImage_Error error; void *pixelBuffer; CGDataProviderRef inProvider = CGImageGetDataProvider(img); CFDataRef inBitmapData = CGDataProviderCopyData(inProvider); inBuffer.width = CGImageGetWidth(img); inBuffer.height = CGImageGetHeight(img); inBuffer.rowBytes = CGImageGetBytesPerRow(img); inBuffer.data = (void*)CFDataGetBytePtr(inBitmapData); pixelBuffer = malloc(CGImageGetBytesPerRow(img) * CGImageGetHeight(img)); 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); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef ctx = CGBitmapContextCreate(outBuffer.data, outBuffer.width, outBuffer.height, 8, outBuffer.rowBytes, colorSpace, CGImageGetBitmapInfo(image.CGImage)); CGImageRef imageRef = CGBitmapContextCreateImage (ctx); UIImage *returnImage = [UIImage imageWithCGImage:imageRef]; //clean up CGContextRelease(ctx); CGColorSpaceRelease(colorSpace); free(pixelBuffer); CFRelease(inBitmapData); CGColorSpaceRelease(colorSpace); CGImageRelease(imageRef); return returnImage; }
相关文章推荐
- iOS CAGradientLayer 颜色渐变
- 消消乐无限道具BUG
- ios修改textField的placeholder的字体颜色、大小
- iOS 8 毛玻璃效果
- iOS TableView实现QQ好友列表(三)
- 支付宝 iOS SDK 官方下载页面
- iOS开发-编译出错 duplicate symbols for architecture x86_64
- IOS开发——获取本地音频文件(属性/信息)
- iOS音乐播放器小技巧
- nios ii 中双向pio的设置与读写函数
- iOS多线程GCD
- iOS 判断文件或文件夹大小(MB)
- iOS开发:创建真机调试证书
- iOS实现多行输入
- iOS开发篇——应用生命周期
- iOS 简单代理(delegate)实现
- 在真机调试 iOS 应用:理解 Certificates, Identifiers & Profiles
- iOS之MRC与ARC混编的设置
- 【整理】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
- iOS应用程序的生命周期