イメージにフィルタを適用して新しいイメージを返す関数を書いています。私は、次のコードを書いた:目的C:CIFilterがnilイメージを返す
+ (UIImage*)applyFilter:(UIImage*) photo {
CIImage *image = [[CIImage alloc] initWithCGImage:photo.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CIphotoEffectTransfer"
keysAndValues: kCIInputImageKey, image,
@"inputIntensity", @0.8, nil];
CIImage *outputImage = [filter outputImage];
UIImage* newPhoto = [self imageFromCIImage:outputImage];
return newPhoto;
}
私はに実行している問題は、関数がnil写真の代わりに適用されたフィルタと1を返しているということです。面白いことに、フィルター名を@ "CIVignetteEffect"に変更しても効果があります。私は1つのフィルターがなぜ機能するのか理解できませんが、他はありません。私は次のリンクから両方のフィルタを見つけました:https://developer.apple.com/library/tvos/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CIPhotoEffectTransfer
ああ、意味があります...私はタイプミスを修正しましたが、私はまだ無限のイメージを得ています。他に何が間違っているかも考えていますか? –
上記の私の編集を参照してください... – dean
完璧に働いた、ありがとう! –