0

我想对我在应用程序中拍摄的照片应用滤镜效果。我需要 3 个按钮来调用这些效果(即,一个用于黑白,一个用于棕褐色,一个用于复古)。所以这是我的问题。保存我的图像时,您将在下面看到一个代码。您将在那里看到“img = [img e1]”。这会将图像保存为黑白。如果我做了“img = [img e2]”,那将是棕褐色。如果我希望这种效果是永久性的,我的代码就可以正常工作。问题是,如果有意义的话,我需要按钮在不同的 e 数字之间进行切换。抱歉,如果没有很好地解释这一点。

- (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);
4

2 回答 2

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
于 2013-03-24T18:40:55.033 回答
0

你可以声明

UIImage *img;

在头 .h 文件和主类中编写三个按钮操作

-(IBAction) nbutton1{

img = [img e1];

}

-(IBAction) nbutton2{

img = [img e2];

}

-(IBAction) nbutton3{

img = [img e3];

}

于 2013-03-24T18:27:43.950 回答