imageview.Aでフィルタを適用した後に元の画像を取得できません。スライダを1から0に移動した後に元の画像を取得したいのですが方向)。以下 あなたは、_affectView
からあなたのデモ画像を取得し、それにフィルタを適用し、再度_affectView
でそれを保存しているシャープネスフィルタを使用して画像ビューを元に戻しません
- (IBAction)actionSharp:(UISlider *)sender {
demoImage = _affectView.image;
CIImage* image = [CIImage imageWithCGImage:demoImage.CGImage];
CIContext *context = [CIContext contextWithOptions:nil];
NSNumber *testNSNumber = [NSNumber numberWithFloat:_sharpActionWithSlider.value];
NSLog(@"ffghhn %f",_sharpActionWithSlider.value);
CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CISharpenLuminance" keysAndValues: @"inputImage", image, nil];
[gaussianBlurFilter setDefaults];
[gaussianBlurFilter setValue:testNSNumber forKey:kCIInputSharpnessKey];
[gaussianBlurFilter setDefaults];
CIImage *result2 = [gaussianBlurFilter valueForKey:kCIOutputImageKey];
CGImageRef cgImage = [context createCGImage:result2 fromRect:[result2 extent]];
UIImage *sharp= [UIImage imageWithCGImage:cgImage];
UIImage *p = sharp;
self.affectView.image= p;
self.affectView.alpha = sender.value;
CGImageRelease(cgImage);
}
あなたの行動では、self.affectView.imageから画像を取得したり、新しい画像を割り当てるたびにその動作が反映されます。したがって、元の画像の代わりに新しい画像を得るたびに。更新された画像ではなく元の画像に効果を追加する必要があります。あなたの参照用にansを追加しました。 – luckyShubhra