1

CIColorPosterizeはiOSで利用できますか?コアイメージフィルターに次のコードを使用していますが、フィルター値は常に​​0です。セピアのフィルターは正常に機能しています。CIColorPosterizeがiOSで利用できるかどうか、利用できる場合はコードの問題点を知りたかっただけです。助けていただければ幸いです。

-(void)imageDraw {

UIImage *image = [UIImage imageNamed:@"cat2.jpg"];

CIImage *beginImage = [CIImage imageWithCGImage:[image CGImage]];
CIContext *context = [CIContext contextWithOptions:nil];
 CIFilter* posterize = [CIFilter filterWithName:@"CIColorPosterize"];
[posterize setDefaults];
[posterize setValue:[NSNumber numberWithDouble:8.0] forKey:@"inputLevels"];
[posterize setValue:beginImage forKey:@"inputImage"];


CIImage *outputImage = [posterize outputImage];

CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *newImg = [UIImage imageWithCGImage:cgimg];


imgVIew.image = newImg;
 ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];  

[library writeImageToSavedPhotosAlbum:[newImg CGImage] orientation:(ALAssetOrientation)           [newImg imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){  
    if (error) {  
        NSLog(@"error");  
    } else {  
        NSLog(@"url %@", assetURL);  
    }  
}];  

CGImageRelease(cgimg);
}
4

2 に答える 2

0

アップデート

CIColorPosterizeがiOS6で利用可能になりました

-(void)logAllFilters {
    NSArray *properties = [CIFilter filterNamesInCategory:
      kCICategoryBuiltIn];
    NSLog(@"%@", properties);
    for (NSString *filterName in properties) {
        CIFilter *fltr = [CIFilter filterWithName:filterName];
        NSLog(@"%@", [fltr attributes]);
    }
}
于 2012-07-13T04:34:17.723 に答える
0

このページには、すべてのがCIFiltersリストされており、MacOSとiOSのそれぞれのバージョンが利用可能でCIColorPosterizeあり、iOSで利用可能としてリストされていません。[+CIFilter filterNamesInCategory:]カテゴリを使って電話をかけて、リストCICategoryColorEffectに戻るかどうかを確認することもできますCIColorPosterize

于 2012-07-13T04:32:34.517 に答える