我使用GPUImageView库在我的项目,其中使用GPUImageView,我已经加入像对比度和对GPUImageView其他图像效果,如深褐色等过滤器,一切都很好,但现在问题是,我想那GPUImageVIew转换成UIImage的,这样我可以提取出来的图像是UIImage的,并张贴在Facebook上的形象,但我不能够做到这一点这是越来越在Facebook上张贴的图片没有它,我增加使用GPUIMageView特效简单的摄像头拍摄的图像。 如何实现这一目标。 请帮我.Thanks提前...下面是我的代码
-(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:@"Default-568h@2x.png"];
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;
}
}