OpenGLES下进行渲染

头文件加上#import <GLKit/GLKit.h>


@property(nonatomic,strong) GLKView *glkView;

@property(nonatomic,strong) CIFilter *filter;

@property(nonatomic,strong) CIImage *ciImage;


@property(nonatomic,strong) CIContext *ciContext;


 UIImage *showImage = [UIImage imageNamed:@"demo"];

    CGRect rect = CGRectMake(0, 0, showImage.size.width, showImage.size.height);

    

    //获取OpenGLES渲染的上下文

    EAGLContext *eagContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];

    //创建出渲染的butter

    _glkView = [[GLKView alloc] initWithFrame:rect context:eagContext];

    [_glkView bindDrawable];

    [self.view addSubview:_glkView];

    //创建出CoreImage用的上下文

    _ciContext = [CIContext contextWithEAGLContext:eagContext options:@{kCIContextWorkingColorSpace:[NSNull null]}];

    

    //CoreImage相关的设置

    _ciImage = [[CIImage alloc] initWithImage:showImage];

    _filter = [CIFilter filterWithName:@"CISepiaTone"];

    [_filter setValue:_ciImage forKey:kCIInputImageKey];

    [_filter setValue:@(0) forKey:kCIInputIntensityKey];

  //  NSLog(@"%@",_filter.attributes);

    

    //开始渲染

    [_ciContext drawImage:[_filter outputImage]

                   inRect:CGRectMake(0, 0, _glkView.drawableWidth, _glkView.drawableHeight)

                 fromRect:[_ciImage extent]];

    [_glkView display];

    

    //动态渲染

    UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0, 400, 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{


    [_filter setValue:_ciImage forKey:kCIInputImageKey];

    [_filter setValue:@(slider.value) forKey:kCIInputIntensityKey];

    

    //开始渲染

    [_ciContext drawImage:[_filter outputImage] inRect:CGRectMake(0, 0, _glkView.drawableWidth,_glkView.drawableHeight ) fromRect:[_ciImage extent]];

    [_glkView display];

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值