我正在嘗試爲我的程序(使網絡攝像頭流動)創建一個過濾器,這會使幀水平翻轉,從而使網絡攝像頭像鏡子一樣工作。水平翻轉一個幀在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 2011-01-24 02:59:03