制作模糊背景图片方法

//使用NSUserDefaults对UIImage数据进行保存
1.对JPEG图片进行保存
UIKIT_EXTERN NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality);
2.对PNG图片进行保存
UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);  
//保存(这里保存图片主要是为了后续直接拿来用,使用GPUImage对图片进行模糊时,是一件即费时间,又费CPU的事情)
[[NSUserDefaults standardUserDefaults] setValue:imageData forKey:@"image"];
[[NSUserDefaults standardUserDefaults] synchronize];

#import "ViewController.h"
#import <GPUImage/GPUImage.h>

@interface ViewController ()
{
    GPUImageiOSBlurFilter * _blurFilter;
    UIImageView * imageView;
}
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    imageView = [[UIImageView alloc]initWithFrame:self.view.bounds];
    
    imageView.image = [UIImage imageNamed:@"IMG_0311.JPG"];
    
    [self.view addSubview:imageView];
    
    _blurFilter = [[GPUImageiOSBlurFilter alloc]init];
    
    _blurFilter.blurRadiusInPixels = 4.0;
    
    [self performScreenshotAndBlur];
}

-(void) performScreenshotAndBlur
{
    UIImage * image = [self convertViewToImage];
    
    UIImage *blurredSnapshotImage = [_blurFilter imageByFilteringImage:image];
    
    [imageView setImage:blurredSnapshotImage];
    imageView.alpha = 1.0;
    
    [self.view addSubview:imageView];
}

-(UIImage *)convertViewToImage
{
    UIGraphicsBeginImageContext(self.view.bounds.size);     //currentView 当前的view  创建一个基于位图的图形上下文并指定大小为
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];//renderInContext呈现接受者及其子范围到指定的上下文
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();//返回一个基于当前图形上下文的图片
    UIGraphicsEndImageContext();//移除栈顶的基于当前位图的图形上下文
    
    NSLog(@"%@",NSStringFromCGSize(viewImage.size));
    //UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);//然后将该图片保存到图片图
    return viewImage;
}
时间: 2024-11-08 18:59:15

制作模糊背景图片方法的相关文章

Qt 制作透明背景图片与裁剪图片(很实用)

这两天想做一个五子棋游戏,想从零开始自己绘制各种图片素材,将经验心得整理如下. 制作透明背景图片: void MyPainter::DrawKit() { QImage image(30, 30, QImage::Format_ARGB32); memset(image.bits(), 0x00, image.byteCount()); // 绘制图片 QPainter painter(&image); painter.setPen(QPen(Qt::red, 2, Qt::SolidLine)

两种 设置 背景图片方法

两种设置背景图片方法 //    UIView *navigationbarTitleTupian =[[UIView alloc]initWithFrame:CGRectMake(0, 0, 40, 30)]; //    UIImageView *imageTitleTupian =[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"bg.png"]]; // //    [navigationbarTitleTupian

【转】MFC添加背景图片方法的三种方法

原帖1:http://www.cnblogs.com/xiao-cheng/archive/2012/01/17/2325114.html 原帖2:http://www.cnblogs.com/fanghui/p/3565067.html 方法1:使用StretchBlt()函数,具有图像自适应窗体功能 //在Onpaint函数中加入如下代码 //----------给窗口设置背景图片---------------------------- CPaintDC dc(this); CRect my

制作个性化gurb菜单背景图片

由于Linux是开源系统,并且一切皆文件,所以如果对Linux grub启动菜单背景感觉太过单调,我们完全可以通过修改配置文件自定义为我们喜欢的背景图片 grub背景图片要求:    图片格式:xpm    压缩格式:gzip    最高支持14位色    建议分辨率:640 X 480 注:制作图片可以使用Windows下的制图工具,也可以使用Linux界相当有名气的图片修改制作工具:gimp程序 本文将讲解如何使用gimp制作gurb背景图片 一.首先查看本机上是否安装有gimp [[ema

ppt怎么换背景图片|PPT换背景设置方法

PPT怎么换背景?PPT背景可谓是PPT幻灯片的灵魂,优美绚丽的PPT背景能为自己做的PPT幻灯片锦上添花.今天,格子啦小编就教大家PPT换背景的方法,让你不再羡慕别人所做PPT的美丽背景,也可以自己制作. PPT换背景第一步. 在进行制作之前我们首先需要下载幻灯片制作工具PowerPoint. PPT换背景第二步. 然后我们点击设计选项(如下图红线标注处所示),我们会发现这里有很多系统自带的设计模板,从中随便选择一个然后点击,会看见原来的幻灯片背景已经改变了. 当我们在点击新建幻灯片的时候是不

Windows 10 应用创建模糊背景窗口的三种方法

原文 Windows 10 应用创建模糊背景窗口的三种方法 现代的操作系统中创建一张图片的高斯模糊效果非常容易,不过如果要在窗口中获得模糊支持就需要操作系统的原生支持了.iOS/Mac 和 Windows 系统都对此有支持. 本文将介绍三种创建模糊背景窗口的方法.有人可能喜欢称之为毛玻璃窗口.亚克力窗口. This post is written in multiple languages. Please select yours: 最早我是在 StackOverflow 上回答一位网友的提问时

DISCUZ论坛添加页头及页尾背景图片的几种方法

先给大家分享页头添加背景图片的两种方法: 1. 第一种效果,是给discuz的整体框架添加背景图片,见图示: 添加方法如下:找到你现在使用模板common文件下的header.html文件,在<head></head>部分添加以下代码: <style>body { background-image:url(你的背景图片地址,如http://abc.com/imgs/bg.jpg); background-repeat:no-repeat; background-posi

css网页中设置背景图片的方法详解

css网页中设置背景图片的方法详解 在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等 用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {background-color:数值}2,背景图片 {background-image: url(URL)|none}3,背景重复 {background-repeat:inherit|no-repeat|repeat|repeat-x|repeat-y}4,背景固定 {background-attachment

swing-窗体添加背景图片的2种方法

在美化程序时,常常需要在窗体上添加背景图片.通过搜索和测试,发现了2种有效方式.下面分别介绍.1.利用JLabel加载图片利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体.这是一个很取巧的办法,代码非常简单,如下所示. JLabel lbBg = new JLabel(imageIcon); lbBg.setBounds(0, 0, frameSize.width, frameSize.height); this.getC