iOS中濾鏡的使用(三)OpenGLES渲染

2021-07-03 17:06:50 字數 1706 閱讀 7248

首先,open graphics library(opengl)用於二維和三維的視覺化。而opengl for embedded systems(opengl es)是opengl的乙個簡化版本,消除冗餘的功能並提供乙個庫,非常容易學習,在移動裝置上應用實踐容易。

它直接執行的圖形處理硬體上,也就是gpu,並不執行在cpu上,因此,對cpu的消耗非常的小,並不影響程式的執行速度。如果是羅列出各種濾鏡,反而吃cpu,讓程式執行速度慢。

其次,opengles是基於c語言編寫的,與平台無關的應用程式介面。

因此,進行大量渲染的時候,通常使用opengles

下面是乙個例子:

#import "viewcontroller.h"

#import

@inte***ce viewcontroller ()

@property (strong, nonatomic) glkview *glkview;//渲染用的buffer檢視

@property (strong, nonatomic) cifilter *filter;

@property (strong, nonatomic) ciimage *ciimage;

@property (strong, nonatomic) cicontext *cicontext;

@end

@implementation viewcontroller

- (void)viewdidload ];

//coreimage相關設定

_ciimage = [[ciimage alloc] initwithimage:showimage];

_filter = [cifilter filterwithname:@"cisepiatone"];// //棕黑色調

[_filter setvalue:_ciimage forkey:kciinputimagekey];

[_filter setvalue:@(0) forkey:kciinputintensitykey];

//開始渲染

[_cicontext drawimage:[_filter outputimage] inrect:cgrectmake(0, 0, _glkview.drawablewidth, _glkview.drawableheight) fromrect:[_ciimage extent]];

[_glkview display];

// [self filter];

//動態渲染

uislider *slider = [[uislider alloc] initwithframe:cgrectmake(0, 450, 320, 20)];

slider.minimumvalue = 0.f;

slider.maximumvalue = 1.f;

[slider addtarget:self action:@selector(sliderevent:) forcontrolevents:uicontroleventvaluechanged];

[self.view addsubview:slider];

}- (void)sliderevent:(uislider *)slider

@end

iOS使用濾鏡

ciimage.這個類儲存影象資料。它可以從uiimage 影象檔案 或者是畫素資料中構造出來。cifilter.濾鏡類包含乙個字典結構,對各種濾鏡定義了屬於他們各自的屬性。濾鏡有很多種,比如鮮豔程度濾鏡,色彩反轉濾鏡,剪裁濾鏡等等。把uiimage轉換成濾鏡可以操作的ciimage ciimage...

Flash中如何使用濾鏡

使用濾鏡 應用或刪除濾鏡 複製和貼上濾鏡 為物件應用預設濾鏡 啟用或禁用應用於物件的濾鏡 啟用或禁用應用於物件的所有濾鏡 建立預設濾鏡庫 物件每新增乙個新的濾鏡,在屬性檢查器中,就會將其新增到該物件所應用的濾鏡的列表中。可以對乙個物件應用多個濾鏡,也可以刪除以前應用的濾鏡。只能對文字 按鈕和影片剪輯...

Flash中如何使用濾鏡

使用濾鏡 應用或刪除濾鏡 複製和貼上濾鏡 為物件應用預設濾鏡 啟用或禁用應用於物件的濾鏡 啟用或禁用應用於物件的所有濾鏡 建立預設濾鏡庫 物件每新增乙個新的濾鏡,在屬性檢查器中,就會將其新增到該物件所應用的濾鏡的列表中。可以對乙個物件應用多個濾鏡,也可以刪除以前應用的濾鏡。只能對文字 按鈕和影片剪輯...