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

あなたは宣言することができます

UIImage *img;

ヘッダー .h ファイルとメイン クラスに 3 つのボタン アクションを記述します。

-(IBAction) nbutton1{

img = [画像 e1];

}

-(IBAction) nbutton2{

img = [画像 e2];

}

-(IBAction) nbutton3{

img = [img e3];

}

于 2013-03-24T18:27:43.950 に答える
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 に答える