美文网首页
高斯模糊

高斯模糊

作者: 孟维学 | 来源:发表于2016-08-02 17:53 被阅读15次

1.添加Accelerate.Framework

2.调用方法

self.backima.image= [selfblurryImage:self.backima.imagewithBlurLevel:.8f];

3.计算方法

- (UIImage*)blurryImage:(UIImage*)image withBlurLevel:(CGFloat)blur {

if(blur <0.f|| blur >1.f) {

blur =0.5f;

}

intboxSize = (int)(blur *100);

boxSize = boxSize - (boxSize %2) +1;

CGImageRefimg = image.CGImage;

vImage_BufferinBuffer, outBuffer;

vImage_Errorerror;

void*pixelBuffer;

CGDataProviderRefinProvider =CGImageGetDataProvider(img);

CFDataRefinBitmapData =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);

}

CGColorSpaceRefcolorSpace =CGColorSpaceCreateDeviceRGB();

CGContextRefctx =CGBitmapContextCreate(

outBuffer.data,

outBuffer.width,

outBuffer.height,

8,

outBuffer.rowBytes,

colorSpace,

kCGImageAlphaNoneSkipLast);

CGImageRefimageRef =CGBitmapContextCreateImage(ctx);

UIImage*returnImage = [UIImageimageWithCGImage:imageRef];

//clean up

CGContextRelease(ctx);

CGColorSpaceRelease(colorSpace);

free(pixelBuffer);

CFRelease(inBitmapData);

CGColorSpaceRelease(colorSpace);

CGImageRelease(imageRef);

returnreturnImage;

}

摘自:http://blog.csdn.net/ios_che/article/details/12577131

相关文章

  • Android图片高斯模糊动画

    前言 这里只讲高斯模糊动画的处理,不讨论高斯模糊的处理方式。想看高斯模糊处理的可以参考这个Android 图片高斯...

  • 快速模糊算法

    图片模糊算法有均值模糊和高斯模糊,均值模糊快速但效果不如高斯,高斯模糊效果好但效率慢。 一种快速模糊算法:算法取自...

  • Java实现高斯模糊和图像的空间卷积

    高斯模糊 高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP...

  • 高斯模糊(Gaussian Blur)笔记

    高斯模糊 在我的理解中高斯模糊与高斯滤波器(Gaussian Filter)和高斯平滑(Gaussian Smoo...

  • 高斯模糊

    原文地址:https://github.com/zuiwuyuan/FastBlur_VoiceChat priv...

  • 高斯模糊

    /** *创建需要的毛玻璃特效类型 */ UIBlurEffect*blurEffect = [UIBlurEff...

  • 高斯模糊

    https://blog.csdn.net/qq_34664239/article/details/7916549...

  • 高斯模糊

    参考文献:阮一峰的网络日志通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。 "模糊"的算法...

  • 高斯模糊

    高斯模糊 【iOS 开发】实现毛玻璃(高斯模糊)效果 - CocoaChina_让移动开发更简单

  • 高斯模糊

    RenderScript是Android在API 11之后加入的,用于高效的图片处理,包括模糊、混合、矩阵卷积计算...

网友评论

      本文标题:高斯模糊

      本文链接:https://www.haomeiwen.com/subject/okzfsttx.html