[绍棠] 高斯模糊效果汇总
来源:互联网 发布:剑三捏脸数据网站 编辑:程序博客网 时间:2024/06/16 09:14
一. iOS7之前
创建一个UIToolbar实例,设置它的frame或者也可以通过添加约束
然后UIToolbar有一个属性:barStyle,设置对应的枚举值来呈现毛玻璃的样式,最后再添加到需要进行毛玻璃效果的view上即可.
二. iOS8
实例化UIBlurEffect并设置毛玻璃的样式,然后再通过UIVisualEffectView的构造方法将UIBlurEffect的实例添加上去最后设置frame或者是通过添加约束, 将effectView添加到要实现了毛玻璃的效果的view控件上,效果图和上面的一样.
三. 导入
#import <Accelerate/Accelerate.h>
+(UIImage *)boxblurImage:(UIImage *)image withBlurNumber:(CGFloat)blur {
if (blur <0.f || blur >1.f) {
blur = 0.5f;
}
int boxSize = (int)(blur *40);
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 = [UIImageimageWithCGImage:imageRef];
//clean up
CGContextRelease(ctx);
CGColorSpaceRelease(colorSpace);
free(pixelBuffer);
CFRelease(inBitmapData);
CGColorSpaceRelease(colorSpace);
CGImageRelease(imageRef);
return returnImage;
}
self.imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(0,300,SCREENWIDTH,100)];
self.imageView.contentMode=UIViewContentModeScaleAspectFill;
self.imageView.image=[UIImageboxblurImage:[UIImageimageNamed:@"Person"]withBlurNumber:0.5];
self.imageView.clipsToBounds=YES;
[self.viewaddSubview:self.imageView]
github地址: https://github.com/happycoco/UIimageBlur
- [绍棠] 高斯模糊效果汇总
- 高斯模糊效果
- 高斯模糊效果
- iOS 图片模糊效果(高斯模糊)
- iOS 高斯模糊 效果
- iOS 高斯模糊效果
- 截屏 高斯模糊效果
- 高斯模糊 毛玻璃效果
- 图片高斯模糊效果
- 高斯模糊加速汇总帖
- iOS实现图片高斯模糊效果
- Android jni 高斯模糊效果
- 高斯模糊效果的简单实现
- iOS图片高斯模糊 毛玻璃效果
- android 实时高斯模糊 毛玻璃效果
- 图片高斯模糊效果简单优化
- 给图片增加高斯模糊效果
- 高斯模糊效果的简单实现
- 百度地图之定自己当前的位置
- SMARTCLIENT入门教程之六
- 统计各数据个数
- Android开发——运行时请求权限
- mysql数据库的安装
- [绍棠] 高斯模糊效果汇总
- 金价“闪跌”创5年内新低,投资者艰难之行
- ImageView的tint属性
- HBase最佳实践-读性能优化策略
- 连通区域的标记
- C#知识点
- thinkphp数据库输出中文utf-8乱码问题
- 设计模式的七种原则
- leecode 解题总结:108. Convert Sorted Array to Binary Search Tree