2013-04-11 12 views
5

Sto usando la libreria GPUImageView nel mio progetto dove si sta usando GPUImageView e ho aggiunto filtri come il contrasto e altri effetti immagine come seppia ecc. Su quel GPUImageView, tutto è buono ma il problema è ora voglio per convertire tale GPUImageVIew in UIImage in modo che io possa estrarre l'immagine da quell'immagine di UII e postare quell'immagine su Facebook, ma non sono in grado di farlo l'immagine che sta diventando post su Facebook è semplice immagine catturata dalla fotocamera senza effetti speciali che io aggiunto usando GPUIMageView. Come ottenere questo. Ti prego, aiutami .thanks in anticipo ... Qui di seguito è il mio codiceCome posso ottenere UIImage da 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; 
    } 
} 

risposta

5

È possibile ottenere l'immagine da

UIImage *currentFilteredImage = [filter imageFromCurrentlyProcessedOutput];