亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS給圖片添加濾鏡&使用openGLES動態渲染圖片詳解及實例

2020-07-26 03:07:31
字體:
來源:轉載
供稿:網友

iOS給圖片添加濾鏡&使用openGLES動態渲染圖片

給圖片增加濾鏡有這兩種方式: CoreImage / openGLES

 下面先說明如何使用CoreImage給圖片添加濾鏡, 主要為以下步驟:

#1.導入CIImage格式的原始圖片

#2.創建CIFilter濾鏡

#3.用CIContext將濾鏡中的圖片渲染出來

#4.導出渲染后的圖片

參考代碼:

//導入CIImage  CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"hua"]];    //創建出Filter濾鏡  CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"];    [filter setValue:ciImage forKey:kCIInputImageKey];    [filter setDefaults];    CIImage *outImage = [filter valueForKey:kCIOutputImageKey];    //用CIContext將濾鏡中的圖片渲染出來  CIContext *context = [CIContext contextWithOptions:nil];    CGImageRef cgImage = [context createCGImage:outImage                    fromRect:[outImage extent]];    //導出圖片  UIImage *showImage = [UIImage imageWithCGImage:cgImage];    CGImageRelease(cgImage);    UIImageView *imageView = [[UIImageView alloc] initWithImage:showImage];  imageView.center    = self.view.center;  [self.view addSubview:imageView];

當要設置多個濾鏡的時候, 出了新創建一個CIFilter外還要額外設定kCIInputAngleKey, 代碼如下:

//導入CIImage  CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"hua.jpeg"]];    //創建出Filter濾鏡  CIFilter *filter = [CIFilter filterWithName:@"CIPixellate"];    [filter setValue:ciImage forKey:kCIInputImageKey];    [filter setDefaults];    CIImage *outImage = [filter valueForKey:kCIOutputImageKey];    CIFilter *filterTwo = [CIFilter filterWithName:@"CIHueAdjust"];    [filterTwo setValue:outImage forKey:kCIInputImageKey];    [filterTwo setDefaults];    [filterTwo setValue:@(1.0f) forKey:kCIInputAngleKey]; //如果不增加這行新增的濾鏡不會生效    CIImage *outputImage = [filterTwo valueForKey:kCIOutputImageKey];    //用CIContext將濾鏡中的圖片渲染出來  CIContext *context = [CIContext contextWithOptions:nil];     CGImageRef cgImage = [context createCGImage:outputImage                    fromRect:[outputImage extent]];    //導出圖片  UIImage *showImage = [UIImage imageWithCGImage:cgImage];    CGImageRelease(cgImage);    UIImageView *imageView = [[UIImageView alloc] initWithImage:showImage];  imageView.center    = self.view.center;  [self.view addSubview:imageView];

下面來介紹怎么用openGLES來使用濾鏡渲染圖片

使用openGlES的步驟大致如下:

#1.導入要渲染的圖片

#2.獲取OpenGLES渲染的上下文

#3.創建出渲染的GLKView buffer

#4.創建CoreImage的上下文

#5.進行CoreImage的相關設置

#6.開始渲染并顯示圖片

參考代碼如下:

//導入要渲染的圖片  UIImage *showImage = [UIImage imageNamed:@"hua.jpeg"];  CGRect rect    = CGRectMake(0, 0, showImage.size.width, showImage.size.height);    //獲取OpenGLES渲染的上下文  EAGLContext *eagContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];    //創建出渲染的buffer  GLKView *glkView = [[GLKView alloc] initWithFrame:rect                       context:eagContext];  [glkView bindDrawable];  [self.view addSubview:glkView];    //創建出CoreImage的上下文  CIContext *ciContext = [CIContext contextWithEAGLContext:eagContext                           options:@{kCIContextWorkingColorSpace: [NSNull null]}];    //CoreImage相關設置  CIImage *ciImage = [[CIImage alloc] initWithImage:showImage];    CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"];    [filter setValue:ciImage forKey:kCIInputImageKey];  [filter setValue:@(0) forKey:kCIInputIntensityKey];    //開始渲染  [ciContext drawImage:[filter valueForKey:kCIOutputImageKey]         inRect:CGRectMake(0, 0, glkView.drawableWidth, glkView.drawableHeight)        fromRect:[ciImage extent]];    [glkView display];

如果要動態渲染, 可以通過UISilder動態調整一下代碼的vaule值

[filter setValue:vaule forKey:kCIInputIntensityKey];

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女撒尿一区二区三区| 国产网站欧美日韩免费精品在线观看| 伊人久久免费视频| 亚洲高清久久久久久| 精品人伦一区二区三区蜜桃免费| 精品视频久久久久久久| 日本sm极度另类视频| 69视频在线免费观看| 北条麻妃一区二区在线观看| 久久精品人人做人人爽| zzijzzij亚洲日本成熟少妇| 亚洲经典中文字幕| 亚洲欧美精品在线| 亚洲激情自拍图| 日韩经典中文字幕在线观看| 久久视频在线视频| 国产剧情久久久久久| 国产精品视频26uuu| 亚洲人高潮女人毛茸茸| 欧美精品在线免费观看| 日韩欧美一区二区三区| xx视频.9999.com| 91高清视频在线免费观看| 91国偷自产一区二区三区的观看方式| 国产视频欧美视频| 91av福利视频| 国产精品电影久久久久电影网| 亚洲激情视频网站| 亚洲free性xxxx护士白浆| 中文字幕最新精品| 中文字幕精品—区二区| 国产激情视频一区| 亚洲视频欧洲视频| 中文字幕9999| 伊人久久免费视频| 中文字幕一区二区三区电影| 国内精品久久久久久影视8| 最近2019中文字幕第三页视频| 久久久免费精品| 国产精品视频免费观看www| 色综合影院在线| 欧美性猛交丰臀xxxxx网站| 日本午夜精品理论片a级appf发布| 亚洲日韩中文字幕在线播放| 伊人成人开心激情综合网| 欧美国产日韩中文字幕在线| 亚洲精品在线看| 中文字幕成人在线| 国产精品久久久久久久久久尿| 91亚洲国产精品| 国产精品美女久久| 亚洲国产欧美日韩精品| 亚洲国产成人在线播放| 8x拔播拔播x8国产精品| 成人国产亚洲精品a区天堂华泰| 久久精品男人天堂| 一本色道久久综合狠狠躁篇的优点| 亚洲在线观看视频网站| 欧美在线一级视频| 久久人人爽人人爽人人片av高清| 另类色图亚洲色图| 国产精品老牛影院在线观看| 51色欧美片视频在线观看| 国产69精品久久久| 欧美日韩国产中字| 国产视频一区在线| 成人午夜两性视频| 亚洲国产另类 国产精品国产免费| 麻豆乱码国产一区二区三区| 久久精品色欧美aⅴ一区二区| 日韩有码在线观看| 国产精品国产三级国产aⅴ9色| 57pao成人永久免费视频| 精品一区二区亚洲| 亚洲色图综合网| 国产精品91视频| 国产亚洲精品美女久久久| 久久伊人色综合| 国产精品嫩草视频| 91av福利视频| 久久中文字幕在线| 国语自产精品视频在线看抢先版图片| 欧美一级bbbbb性bbbb喷潮片| 欧美精品videosex牲欧美| 精品久久久久久亚洲国产300| 91视频88av| 亚洲性日韩精品一区二区| xxxx欧美18另类的高清| 亚洲成av人片在线观看香蕉| 黑人巨大精品欧美一区二区一视频| 精品国产乱码久久久久久虫虫漫画| 久久久久久久国产精品| 久久香蕉国产线看观看av| 欧美又大粗又爽又黄大片视频| 欧美性一区二区三区| 欧美激情精品久久久久久蜜臀| 国产成人精品久久二区二区91| 国产精品精品视频一区二区三区| 欧美二区乱c黑人| 国产日韩中文字幕| 一本一本久久a久久精品牛牛影视| 国产盗摄xxxx视频xxx69| 国产精品综合不卡av| 中文字幕亚洲第一| 亚洲精品电影在线观看| 欧美高清在线视频观看不卡| 96pao国产成视频永久免费| 亚洲欧美在线免费观看| 国产成人精品在线播放| 欧美综合在线观看| 久久亚洲私人国产精品va| 亚洲一区二区久久久久久| 亚洲乱码国产乱码精品精| 亚洲国产精品久久久久| 欧美另类69精品久久久久9999| 精品久久久久久久久久久久久| 57pao成人永久免费视频| 狠狠躁天天躁日日躁欧美| 动漫精品一区二区| 久久国产精品亚洲| 日韩av最新在线| 日韩电影免费观看中文字幕| 欧美黄网免费在线观看| 日韩专区中文字幕| 亚洲激情第一页| 亚洲一区二区久久久久久久| 97精品国产97久久久久久春色| 久久久久这里只有精品| 亚洲欧洲日产国产网站| 国产一区二区三区视频在线观看| 亚洲欧美日韩网| 亚洲精品国产suv| 国产福利视频一区二区| 久久成人这里只有精品| 午夜精品福利视频| 97久久超碰福利国产精品…| 日韩一区视频在线| 久久男人资源视频| 久久这里有精品视频| 蜜月aⅴ免费一区二区三区| 亚洲成人激情图| 久久国产精品偷| zzjj国产精品一区二区| 欧美伊久线香蕉线新在线| 日韩中文字幕在线观看| 久久精品国产96久久久香蕉| 欧美精品日韩www.p站| 伊人伊人伊人久久| 日韩精品免费在线视频| 成人久久18免费网站图片| 久久久久久中文| 日韩综合视频在线观看| 啪一啪鲁一鲁2019在线视频| 97精品国产aⅴ7777| 精品人伦一区二区三区蜜桃免费| 热re91久久精品国99热蜜臀| 国产精品电影在线观看| 久久中国妇女中文字幕| 欧美精品video| 中文国产亚洲喷潮| 国精产品一区一区三区有限在线| 国产精品流白浆视频| 亚洲日本成人网| 日韩av在线免播放器|