Как я могу получить UIImage из GPUImageView

Я использую библиотеку GPUImageView в своем проекте, где она использует GPUImageView, и я добавил фильтры, такие как контрастность и другие эффекты изображения, такие как сепия и т. Д., В этом GPUImageView, все хорошо, но проблема в том, что теперь я хочу преобразовать этот GPUImageVIew в UIImage, чтобы я мог Извлеките изображение из этого UIImage и опубликуйте это изображение на Facebook, но я не могу сделать так, чтобы изображение, которое публикуется на Facebook, было простым изображением, снятым камерой, без специальных эффектов, которые я добавил с помощью 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;
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос