I use the GPUImageView library in my project, where it uses the GPUImageView, and I have added filters like contrast and other image effects like sepia etc. on this GPUImageView, everything is fine, but the problem is now that I want to convert this GPUImageVIew to UIImage, so that I can extract the image from this UIImage and post this image to Facebook, but I can’t make that image that receives the message on facebook is a simple camera-shot image without special effects that I added using GPUIMageView. How to achieve this. Please help me. Thanks in Advance ... Below is my code
-(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;
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;
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:@"Default-568h@2x.png"];
img_New = [[UIImage alloc] init];
switch (index) {
case 1:
{
filter = [[GPUImageContrastFilter alloc] init];
[(GPUImageContrastFilter *) filter setContrast:1.75];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew1.png"]];
}
} break;
case 2:
{
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"crossprocess"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew2.png"]];
}
} break;
case 3:
{
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"02"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew3.png"]];
}
} break;
case 4:
{
filter = [[GrayscaleContrastFilter alloc] init];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew4.png"]];
}
} break;
case 5:
{
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"17"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew5.png"]];
}
} break;
case 6: {
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"aqua"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew6.png"]];
}
} break;
case 7: {
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"yellow-red"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew7.png"]];
}
} break;
case 8: {
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"06"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew8.png"]];
}
} break;
case 9: {
filter = [[GPUImageToneCurveFilter alloc] initWithACV:@"purple-green"];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@"borderNew9.png"]];
}
} break;
default:
filter = [[GPUImageFilter alloc] init];
if(Border==NO)
{
[imgBorder setImage:[UIImage imageNamed:@""]];
}
break;
}
}
source
share