UIImage高斯模糊
来源:互联网 发布:土方工程量计算软件 编辑:程序博客网 时间:2024/06/03 12:29
- (UIImage *)blurryImage:(UIImage *)image withBlurLevel:(CGFloat)blur{ if (!image) { return nil; } if (blur < 0.f || blur > 1.f) { blur = 0.3f; } int boxSize = (int)(blur * 5); boxSize = boxSize - (boxSize % 2) + 1; CGImageRef img = image.CGImage; vImage_Buffer inBuffer, outBuffer; vImage_Error error; void *pixelBuffer; //从CGImage中获取数据 CGDataProviderRef inProvider = CGImageGetDataProvider(img); CFDataRef inBitmapData = CGDataProviderCopyData(inProvider); //设置从CGImage获取对象的属性 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;}
0 0
- UIImage高斯模糊
- UIImageview 模糊、高斯模糊
- 均值模糊 高斯模糊
- 高斯模糊模块
- 高斯模糊
- 高斯模糊
- 高斯模糊
- 高斯模糊
- android 高斯模糊
- 高斯模糊算法
- 高斯模糊
- 高斯模糊
- 高斯模糊详解
- 高斯模糊
- 高斯模糊-理论
- 高斯模糊實現小結
- 快速高斯模糊
- 高斯模糊算法
- 关于cookie和webstorage
- 拟牛顿法
- 这篇博客的目的在于简单介绍如何快速上手使用Spring MVC框架
- NTModel框架与通信(含使用服务加载驱动)
- file-max
- UIImage高斯模糊
- 管理类-项目管理-处事管理
- Theano
- hive与hbase整合
- Android开发学习笔记:数据存取之SQLite浅析
- vmware下openfiler的ip设置
- iOS发布app到App Store教程
- 一台电脑如何管理多个SSH KEY
- 21个数据科学家面试必须知道的问题和答案