iOS_UIImage_毛玻璃效果
2016-12-07 13:40
323 查看
效果图:
核心方法:
核心方法:
// 出入UIImage 和 blur模糊成度 (0-1) - (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur { /** 注意点: 1. 需要引入#import <Accelerate/Accelerate.h> 2. blur 的范围必须在0-1中间,否则强制为0.5 3. */ if (blur < 0.f || blur > 1.f) { blur = 0.5f; } int boxSize = (int)(blur * 100); boxSize = 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)); if(pixelBuffer == NULL) 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]; //clean up CGContextRelease(ctx); CGColorSpaceRelease(colorSpace); free(pixelBuffer); CFRelease(inBitmapData); CGColorSpaceRelease(colorSpace); CGImageRelease(imageRef); return returnImage; }
相关文章推荐
- [IOS 开发] 为UIImage 绘制 毛玻璃效果
- ios UIimageView 手势移动动画效果
- iOS开发——UIImage实现Sprite精灵帧动画效果
- iOS 毛玻璃效果
- iOS 毛玻璃效果
- iOS开发 - 毛玻璃效果
- iOS 6编程-UIScrollView滚动视图结合UIImageView图像视图实现图像缩放效果
- iOS开发--毛玻璃效果(UIImage+Blur)直接拿去
- iOS View 模糊效果(毛玻璃)
- iOS_自定义毛玻璃效果
- ios开发笔记-2-毛玻璃效果
- iOS View 模糊效果(毛玻璃)
- IOS-UIButton和UIImageView中Image拉伸效果的实现
- iOS 8.0 毛玻璃效果UIVisualEffect
- iOS开发--毛玻璃效果,图片模糊效果
- 【iOS开发】关于显示一连串图片组成动画效果UIImageView的使用
- iOS 毛玻璃效果
- IOS 毛玻璃 效果实现
- 【学习ios之路:UI系列】实现轮播图效果(UIImageView,UIScrollView,UIPageControl,NSTimer相结合)
- iOS 8 毛玻璃效果