研究IOS毛玻璃的效果
来源:互联网 发布:linux软碟通 编辑:程序博客网 时间:2024/05/17 03:45
我抄了源码,其实就是一个中值模糊// UIImage+Blur.m// NZAlertView//// Created by Bruno Furtado on 20/12/13.// Copyright (c) 2013 No Zebra Network. All rights reserved.//#import "UIImage+BlurGlass.h"@implementation UIImage (Blur)- (UIImage*)blurredImage:(CGFloat)blurAmount{ int boxSize = (int)(blurAmount); boxSize = boxSize - (boxSize %2) +1; CGImageRef img =self.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)); 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) { error =vImageBoxConvolve_ARGB8888(&outBuffer, &inBuffer,NULL,0,0, boxSize, boxSize, NULL, kvImageEdgeExtend); if (!error) { error =vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer,NULL,0,0, boxSize, boxSize, NULL, kvImageEdgeExtend); } } CGColorSpaceRef colorSpace =CGColorSpaceCreateDeviceRGB(); CGContextRef ctx =CGBitmapContextCreate(outBuffer.data, outBuffer.width, outBuffer.height, 8, outBuffer.rowBytes, colorSpace, (CGBitmapInfo)kCGImageAlphaNoneSkipLast); CGImageRef imageRef =CGBitmapContextCreateImage (ctx); UIImage *returnImage = [UIImageimageWithCGImage:imageRef]; CGContextRelease(ctx); CGColorSpaceRelease(colorSpace); free(pixelBuffer); CFRelease(inBitmapData); CGColorSpaceRelease(colorSpace); CGImageRelease(imageRef); return returnImage;}@end
然而,ios人家官方就有一个类似咱们navbar背景那样子的效果,蒙层做的很自然,很厉害。上代码
// 创建需要的毛玻璃特效类型 UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; // 毛玻璃view视图 UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; // 添加到要有毛玻璃特效的控件中 effectView.frame = self.imageV.bounds; [self.imageV addSubview:effectView]; // 设置模糊透明度 effectView.alpha = .8f;
0 0
- 研究IOS毛玻璃的效果
- iOS毛玻璃效果的实现
- iOS自带的毛玻璃的效果
- iOS毛玻璃效果的简单实现
- IOS关于毛玻璃效果的使用
- iOS 毛玻璃效果
- ios 毛玻璃效果
- iOS 图片毛玻璃效果
- IOS毛玻璃效果
- ios毛玻璃效果
- iOS:毛玻璃效果
- iOS毛玻璃效果
- iOS 毛玻璃效果
- ios毛玻璃效果
- iOS毛玻璃效果
- iOS开发 - 毛玻璃效果
- iOS 毛玻璃效果
- IOS毛玻璃效果
- 指针与数组
- PHP解决抢购、秒杀、抢楼、抽奖等阻塞式高并发库存防控超量的思路方法
- 从尾到头打印链表
- gradle构建多module的项目
- BF算法
- 研究IOS毛玻璃的效果
- DDMS出现Make sure the plugin is properly configured问题的解决办法
- JSP导出excel时中文乱码的问题
- Javascript(一)-08-(JS语句-if语句)
- mac上使用github命令提交代码实例(二)代码提交
- 欢迎使用CSDN-markdown编辑器
- 内核3.x版本之后设备树机制
- 社説 20150820 知的財産の活用 法改正を競争力向上に生かせ
- HDOJ--2066--一个人的旅行