1

から受け取った画像に CIFilter を適用しようとしていますUIImagePickerController。私が使用しているコードは次のとおりです。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    [picker dismissViewControllerAnimated:YES completion:nil];

    UIImage *userImage = info[UIImagePickerControllerOriginalImage];
    UIImage *croppedImage = [UIImage imageWithCGImage:CGImageCreateWithImageInRect(userImage.CGImage, CGRectMake(0, 320, 640, 640))];

    CIContext *context = [CIContext contextWithOptions:nil];
    CIImage *img = [CIImage imageWithCGImage:croppedImage.CGImage];
    CIFilter *adjustFilter = [CIFilter filterWithName:@"CILineOverlay"];

    [adjustFilter setDefaults];
    [adjustFilter setValue:img forKey:kCIInputImageKey];
    [adjustFilter setValue:[NSNumber numberWithFloat:1.0] forKey:@"inputNRSharpness"];
    CIImage *adjustedImage = [adjustFilter valueForKey:kCIOutputImageKey];
    UIImage *newImage = [UIImage imageWithCIImage:[context createCGImage:adjustedImage fromRect:adjustedImage.extent]];

    NSLog(@"%@", newImage);

    self.myImageView.image = newImage;

}

ここで、フィルターを適用するプロセスが完了すると (エラーは表示されません)、画像ビューに画像は表示されません (コンソールにはログが記録されます<UIImage: 0x8b91810>)。croppedImage処理部分をスキップして、フィルターなしを画像ビューに割り当てるだけで、正常に表示されます。

それで、私はここで何が間違っていますか?このコードを使用してスクリーンショットを処理したいのですが、写真で試してみたところ、同じ (ゼロ) の結果が得られました。

4

0 に答える 0