2013-04-11 37 views
5

得到的UIImage我使用GPUImageView库在我的项目,其中使用GPUImageView,我已经加入像对比度和对GPUImageView其他图像效果,如深褐色等过滤器,一切都很好,但现在我想的问题是到GPUImageVIew转换成UIImage的,这样我可以提取出来的图像是UIImage的,并张贴在Facebook上的形象,但我不能够做到这一点这是越来越在Facebook上张贴的图片没有特效简单的摄像头拍摄的图像,我使用GPUIMageView添加。如何实现这一点。请帮我.Thanks提前...下面是我的代码如何从GPUImageView

-(void) loadFilters 
{ 
    for(int i = 0; i < 10; i++) 
    { 
     UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; 
     [button setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", i + 1]] forState:UIControlStateNormal]; 
     button.frame = CGRectMake(10+i*(60+10), 5.0f, 60.0f, 60.0f); 
     button.layer.cornerRadius = 7.0f; 

     //use bezier path instead of maskToBounds on button.layer 
     UIBezierPath *bi = [UIBezierPath bezierPathWithRoundedRect:button.bounds 
               byRoundingCorners:UIRectCornerAllCorners 
                 cornerRadii:CGSizeMake(7.0,7.0)]; 

     CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
     maskLayer.frame = button.bounds; 
     maskLayer.path = bi.CGPath; 
     button.layer.mask = maskLayer; 

     button.layer.borderWidth = 1; 
     button.layer.borderColor = [[UIColor blackColor] CGColor]; 

     [button addTarget:self 
        action:@selector(filterClicked:) 
     forControlEvents:UIControlEventTouchUpInside]; 
     button.tag = i; 
     // [button setTitle:@"*" forState:UIControlStateSelected]; 
     if(i == 0){ 
      [button setSelected:YES]; 
     } 
     [self.filterScrollView addSubview:button]; 
    } 
    [self.filterScrollView setContentSize:CGSizeMake(10 + 10*(60+10), 75.0)]; 
} 
-(void) filterClicked:(UIButton *) sender 
{ 
    for(UIView *view in self.filterScrollView.subviews) 
    { 
     if([view isKindOfClass:[UIButton class]]) 
     { 
      [(UIButton *)view setSelected:NO]; 
     } 
    } 

    [sender setSelected:YES]; 
    [self removeAllTargets]; 

    selectedFilter = sender.tag; 
    [self setFilter:sender.tag]; 
    [self prepareFilter]; 
} 

-(void) setFilter:(int) index 
{ 
    UIImage *inputImage = [UIImage imageNamed:@"[email protected]"]; 
    img_New = [[UIImage alloc] init]; 
    switch (index) { 
     case 1: 
     { 
      filter = [[GPUImageContrastFilter alloc] init]; 
      [(GPUImageContrastFilter *) filter setContrast:1.75]; 
      // img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew1.png"]]; 
      } 
     } break; 
     case 2: 
     { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"crossprocess"]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew2.png"]]; 
      } 
     } break; 
     case 3: 
     { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"02"]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew3.png"]]; 
      } 
     } break; 
     case 4: 
     { 
      filter = [[GrayscaleContrastFilter alloc] init]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew4.png"]]; 
      } 
     } break; 
     case 5: 
     { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"17"]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew5.png"]]; 
      } 
     } break; 
     case 6: { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"aqua"]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew6.png"]]; 
      } 
     } break; 
     case 7: { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"yellow-red"]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew7.png"]]; 
      } 
     } break; 
     case 8: { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"06"]; 
      // img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew8.png"]]; 
      } 
     } break; 
     case 9: { 
      filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"purple-green"]; 
      // img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@"borderNew9.png"]]; 
      } 
     } break; 
     default: 
      filter = [[GPUImageFilter alloc] init]; 
      //img_New = [filter imageByFilteringImage:inputImage]; 
      if(Border==NO) 
      { 
       [imgBorder setImage:[UIImage imageNamed:@""]]; 
      } 
      break; 
    } 
} 

回答

5

您可以通过

UIImage *currentFilteredImage = [filter imageFromCurrentlyProcessedOutput]; 
获得图像