三人の観察:
あなたはUIImage
からCIImage
するinputImage
を設定する必要があります。
[gaussianBlurFilter setValue:[CIImage imageWithCGImage:[imageView.image CGImage]] forKey:kCIInputImageKey];
私は例えば、あなたがoutputImage
をつかん表示されません。
CIImage *outputImage = [gaussianBlurFilter outputImage];
そしておそらくCIImage
をUIImage
に戻したいと思うでしょう。
だから、そのすべて一緒に入れて:あなたはWWDC 2013 sample code(必要な有料の開発者向けサブスクリプション)に移動し、iOS_UIImageEffects
をダウンロードした場合
CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
[gaussianBlurFilter setDefaults];
CIImage *inputImage = [CIImage imageWithCGImage:[imageView.image CGImage]];
[gaussianBlurFilter setValue:inputImage forKey:kCIInputImageKey];
[gaussianBlurFilter setValue:@10 forKey:kCIInputRadiusKey];
CIImage *outputImage = [gaussianBlurFilter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[inputImage extent]]; // note, use input image extent if you want it the same size, the output image extent is larger
UIImage *image = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
はまた、あなたがしてUIImage+ImageEffects
カテゴリをつかむことができます。あなたが行うことができます(つまり、「曇りガラス」効果を与える)ぼかすので
- (UIImage *)applyLightEffect;
- (UIImage *)applyExtraLightEffect;
- (UIImage *)applyDarkEffect;
- (UIImage *)applyTintEffectWithColor:(UIColor *)tintColor;
- (UIImage *)applyBlurWithRadius:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage;
、および画像と、それを明るく:それはいくつかの新しい方法を提供
UIImage *newImage = [image applyLightEffect];
興味深いことに、Appleのコードがを行いますではなくCIFilter
を使用しますが、vImage high-performance image processing frameworkのvImageBoxConvolve_ARGB8888
を呼び出します。
この手法は、WWDC 2013ビデオImplementing Engaging UI on iOSに示されています。私は質問がiOSの7についてだったけど、今のiOS 8に1がUIBlurEffect
で任意のUIView
オブジェクトにぼかし効果を追加することができます
:
UIVisualEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect];
effectView.frame = imageView.bounds;
[imageView addSubview:effectView];
出典
2013-10-17 17:10:25
Rob
ができ私はibactionのコードを持っていないと言う、どのexca tcly私は私のibactionで書くだろうか?あなたが書いたコードの最後の部分ですか?素晴らしい返信をお寄せいただきありがとうございます。ご迷惑をおかけして申し訳ございません。D – user2891448
最後に編集した回答をお見逃しなく! – user2891448
コードの2番目の最後の行である「未使用の変数Image」という警告が表示されます – user2891448