1

次のコードは、画像に素晴らしいセピア効果を追加しますが、たとえば別のフィルターを選択すると、画像がCIBloomまったく表示されません。手伝ってくれますか?

- (void)drawRect:(CGRect)rect
{
    UIImage *megan = [UIImage imageNamed:@"megan.png"];

    CIImage *cimage = [[CIImage alloc] initWithImage:megan];

    CIFilter *myFilter = [CIFilter filterWithName:@"CISepiaTone"];

    [myFilter setDefaults];
    [myFilter setValue:cimage forKey:@"inputImage"];
    [myFilter setValue:[NSNumber numberWithFloat:0.8f] forKey:@"inputIntensity"];

    CIImage *image = [myFilter outputImage];
    CIContext *context = [CIContext contextWithOptions:nil];
    CGImageRef cgImage = [context createCGImage:image fromRect:image.extent];
    UIImage *resultUIImage = [UIImage imageWithCGImage:cgImage];
    CGImageRelease(cgImage);

    CGRect imageRecht = [[UIScreen mainScreen] bounds];
    [resultUIImage drawInRect:imageRecht];
}

私の理解では、次の行を編集してフィルターを変更できるはずです。

CIFilter *myFilter = [CIFilter filterWithName:@"CIBloom"];
[myFilter setValue:[NSNumber numberWithFloat:10.0f] forKey:@"inputIntensity"];

しかし、これを行うと、アプリを起動したときに画像がまったく表示されません。

4

1 に答える 1

2

CIEpiaTone は Mac OS X v10.4 以降および iOS 5.0 以降で使用できますが、CIBloom は Mac OS X v10.4 以降でのみ使用できます。

https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CoreImageFilterReference/Reference/reference.html

于 2012-05-17T11:59:25.533 に答える