私のプログラム(ウェブカメラをストリーミングする)のフィルタを作成しようとしています。このフィルタは、フレームを水平にフリップさせ、ウェブカメラをミラーのように動作させます。Objective-Cのフレームの水平フリップ
しかし、コンパイルして実行している間は、フィルタは影響を与えていないようです。ここで
コードです:不思議な
CIImage *resultImage = image;
CIFilter *flipFilter = [CIFilter filterWithName:@"CIAffineTransform"];
[flipFilter setValue:resultImage forKey:@"inputTransform"];
NSAffineTransform* flipTransform = [NSAffineTransform transform];
[flipTransform scaleXBy:-1.0 yBy:1.0]; //horizontal flip
[flipFilter setValue:flipTransform forKey:@"inputTransform"];
resultImage = [flipFilter valueForKey:@"outputImage"];
、他のフィルタが動作しているように見え。例:
CIFilter * ciEffectFilter = [CIFilter filterWithName:@"CIGloom"];
[ciEffectFilter setDefaults];
CIImage *resultImage = image;
[ciEffectFilter setValue: resultImage forKey:@"inputImage"];
[ciEffectFilter setValue:[NSNumber numberWithFloat: 0.75]
forKey:@"inputIntensity"];
[ciEffectFilter setValue:[NSNumber numberWithFloat: 20]
forKey:@"inputRadius"];
resultImage = [ciEffectFilter valueForKey:@"outputImage"];
CIFilter *ciCropFilter = [CIFilter filterWithName:@"CICrop"];
[ciCropFilter setDefaults];
[ciCropFilter setValue: resultImage forKey:@"inputImage"];
[ciCropFilter setValue: [CIVector vectorWithX:50 Y:50 Z:300 W:
300] forKey:@"inputRectangle"];
resultImage = [ciCropFilter valueForKey:@"outputImage"];
NSAffineTransformとは何か?私は周りを見回しましたが、私は答えを見つけませんでした。 ヒープありがとう!
素晴らしい。それがトリックです!ありがとう! :D – Moonlight293
注:これはOS Xのソリューションです.iOSでは、NSAffineTransformの代わりにNSValueを使用する必要があります。 '[NSValue valueWithBytes:&flipTransform objCType:@encode(CGAffineTransform)];' –