增加  CoreImage.framework  CoreGraphic.framework 等库

在使用时引入:#import
<Accelerate/Accelerate.h> ,支持iOS 5.0 及以上。

-(void)show

{

UIImage* img = [self
getBlurImage:[UIImage
imageNamed:@"Default-568h.png"]];

[_bgImageView
setImage:img];

}

-(UIImage*)getBlurImage:(UIImage*)image

{

return [self
gaussBlur:0.2
andImage:image];

}

- (UIImage*)gaussBlur:(CGFloat)blurLevel andImage:(UIImage*)originImage

{

blurLevel = MIN(1.0,
MAX(0.0, blurLevel));

//int boxSize = (int)(blurLevel * 0.1 * MIN(self.size.width, self.size.height));

;//模糊度。

boxSize = boxSize - (boxSize % ) + ;

NSData *imageData =
UIImageJPEGRepresentation(originImage, );

UIImage *tmpImage = [UIImage
imageWithData:imageData];

CGImageRef img = tmpImage.CGImage;

vImage_Buffer inBuffer, outBuffer;

vImage_Error error;

void *pixelBuffer;

//create vImage_Buffer with data from CGImageRef

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

//create vImage_Buffer for output

pixelBuffer = malloc(CGImageGetBytesPerRow(img) *
CGImageGetHeight(img));

outBuffer.data = pixelBuffer;

outBuffer.width =
CGImageGetWidth(img);

outBuffer.height =
CGImageGetHeight(img);

outBuffer.rowBytes =
CGImageGetBytesPerRow(img);

;

CGFloat sig2 = windowR /
3.0;

){ sig2 = -/(*sig2*sig2); }

int16_t *kernel = (int16_t*)malloc(boxSize*sizeof(int16_t));

;

; i<boxSize; ++i){

kernel[i] = *exp(sig2*(i-windowR)*(i-windowR));

sum += kernel[i];

}

free(kernel);

// convolution

error = vImageConvolve_ARGB8888(&inBuffer, &outBuffer,
, , kernel, boxSize, , sum,
NULL, kvImageEdgeExtend);

error = vImageConvolve_ARGB8888(&outBuffer, &inBuffer,
, , kernel, , boxSize, sum,
NULL, kvImageEdgeExtend);

outBuffer = inBuffer;

if (error) {

//NSLog(@"error from convolution %ld", error);

}

CGColorSpaceRef colorSpace =
CGColorSpaceCreateDeviceRGB();

CGContextRef ctx =
CGBitmapContextCreate(outBuffer.data,

outBuffer.width,

outBuffer.height,

,

outBuffer.rowBytes,

colorSpace,

kCGBitmapAlphaInfoMask &
kCGImageAlphaNoneSkipLast);

CGImageRef imageRef =
CGBitmapContextCreateImage(ctx);

UIImage *returnImage = [UIImage
imageWithCGImage:imageRef];

//clean up

CGContextRelease(ctx);

CGColorSpaceRelease(colorSpace);

free(pixelBuffer);

CFRelease(inBitmapData);

CGImageRelease(imageRef);

return returnImage;

}


版权声明:本文博客原创文章,博客,未经同意,不得转载。

iOS画面模糊的更多相关文章

  1. iOS可视化动态绘制连通图

    上篇博客<iOS可视化动态绘制八种排序过程>可视化了一下一些排序的过程,本篇博客就来聊聊图的东西.在之前的博客中详细的讲过图的相关内容,比如<图的物理存储结构与深搜.广搜>.当 ...

  2. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  3. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

  4. iOS总结_UI层自我复习总结

    UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ...

  5. iOS代码规范(OC和Swift)

    下面说下iOS的代码规范问题,如果大家觉得还不错,可以直接用到项目中,有不同意见 可以在下面讨论下. 相信很多人工作中最烦的就是代码不规范,命名不规范,曾经见过一个VC里有3个按钮被命名为button ...

  6. JS调用Android、Ios原生控件

    在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...

  7. 告别被拒,如何提升iOS审核通过率(上篇)

    iOS审核一直是每款移动产品上架苹果商店时面对的一座大山,每次提审都像是一次漫长而又悲壮的旅行,经常被苹果拒之门外,无比煎熬.那么问题来了,我们有没有什么办法准确把握苹果审核准则,从而提升审核的通过率 ...

  8. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  9. Summary of Critical and Exploitable iOS Vulnerabilities in 2016

    Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...

随机推荐

  1. “NET网络”进行中,多管齐下的人才力挫“”粗俗

            随着互联网的迅猛发展,一些不太干净.低俗的甚至色情的内容不断浮现.不仅严重影响了我们的上网体验,也成为扰乱互联网正常秩序的罪魁祸首,部分不法内容甚至给网民造成了一定的財产损失.在这样的 ...

  2. 字符串属性 NSMutableAttributedString/NSAttributedString

    因为iOS7新出的NSTextStorge是NSMutableAttributedString的子类.所以要用好NSTextStorage.首先要学好NSMutableAttributedString ...

  3. 怎样批量把excel中已显示的科学计数法取消

    作者:iamlaosong 把一文本文档拷贝到EXCEL中时,当中一列数字所有变成科学计数法,这些数事实上是条码号,不需进行运算,怎样能够取消科学计算法,将数字显示成原来的样子呢?一般方法例如以下: ...

  4. React学习系列

    React学习系列 系列学习react 翻译地址 https://scotch.io/tutorials/learning-react-getting-started-and-concepts 我是初 ...

  5. Do a “git export” (like “svn export”)?(转)

    Probably the simplest way to achieve this is with git archive. If you really need just the expanded ...

  6. ftk学习记录(脚本文章)

    [声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇说到了对话框.今天就看看结果. watermark/2/text/aHR0cDovL2Js ...

  7. Struts2流程

    Struts2流程 1.client浏览器初始化时发出HTTP请求 2.依据web.xml配置,上述请求被FilterDispatcher接收 3.依据struts.xml配置,找到须要调用的Acti ...

  8. Controller与Action

    Controller与Action 我们知道在MVC5和之前的版本,两个框架的生命周期是不一样的,在新版MVC6中,MVC Controller/Web API Controller已经合二为一了,本 ...

  9. 当<script>中的type等于text/html的妙用

    我们可以在<script>片断中定义一个被JS调用的代码,但代码又不在页面上显示,这时,我们可以使用下面的方法: <script id="commentTemplate&q ...

  10. 采用RedisLive监控Redis服务

    1.基础环境安装https://pypi.python.org/packages/source/b/backports.ssl_match_hostname/backports.ssl_match_h ...