我想对我在应用中捕获的照片应用滤镜效果。我需要3个按钮来调用这些效果(即一个用于黑色和白色,一个用于棕褐色,一个用于Vintage)。所以这是我的问题。下面您将看到保存图像时的代码。你会在那里看到" img = [img e1]"。这会将图像保存为黑白图像。如果我做了" img = [img e2]"这将是棕褐色。如果我希望这种效果是永久性的,我的代码就可以正常工作。问题是如果有意义的话,我需要按钮在不同的电子号码之间切换。对不起,如果没有解释那么好。
- (void)captureEnded:(CameraView *)camView {
NSLog(@"%f, %f", [camView capturedImage].size.width, [camView capturedImage].size.height)
UIImage *img = [camView capturedImage];
img = [img e1];
img = [UIImage imageWithCGImage:[ self rotateImage:img angle:90 ].CGImage
scale:1.0 orientation: UIImageOrientationUp];
UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);
答案 0 :(得分:0)
您可以声明
UIImage *img;
在标题.h文件和主类中写入三个按钮操作
-(IBAction) nbutton1{
img = [img e1];
}
-(IBAction) nbutton2{
img = [img e2];
}
-(IBAction) nbutton3{
img = [img e3];
}
答案 1 :(得分:0)
方法名称数组
NSArray *methodArray = [NSArray arrayWithObjects:@"e1", @"e2", @"e3", nil];
使用数组
中使用的名称声明方法- (void)e1
{
// Code for Black & White effect
}
- (void)e2
{
// Code for Sepia effect
}
- (void)e3
{
// Code for Vignet effect
}
现在使用代码
调用数组对象的方法[self performSelector:NSSelectorFromString([methodArray objectAtIndex:0])]; // call to method e1
[self performSelector:NSSelectorFromString([methodArray objectAtIndex:1])]; // call to method e2
[self performSelector:NSSelectorFromString([methodArray objectAtIndex:2])]; // call to method e3