を向上させる私がイメージにセピアフィルタを適用するには、次のコードを書いた:私はこのコードを実行するとObjective CのCIImageフィルタスピード
- (void)applySepiaFilter {
// Set previous image
NSData *buffer = [NSKeyedArchiver archivedDataWithRootObject: self.mainImage.image];
[_images push:[NSKeyedUnarchiver unarchiveObjectWithData: buffer]];
UIImage* u = self.mainImage.image;
CIImage *image = [[CIImage alloc] initWithCGImage:u.CGImage];
CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone"
keysAndValues: kCIInputImageKey, image,
@"inputIntensity", @0.8, nil];
CIImage *outputImage = [filter outputImage];
self.mainImage.image = [self imageFromCIImage:outputImage];
}
- (UIImage *)imageFromCIImage:(CIImage *)ciImage {
CIContext *ciContext = [CIContext contextWithOptions:nil];
CGImageRef cgImage = [ciContext createCGImage:ciImage fromRect:[ciImage extent]];
UIImage *image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
return image;
}
1~2秒間遅れているようです。コア・イメージはコア・グラフィックスよりも速いと聞きましたが、私はレンダリング時間に大きな影響を受けません。 CoreGraphicsやOpenCV(これはプロジェクトのどこかで使用されている)でさえ処理が速いのかどうか疑問に思っていましたか?そうでない場合は、このコードを最適化してより速く実行できますか?
ここで実際に何が遅いのか調べるためにInstrumentsを使用しましたか? – zneak
@zneakこれらの楽器はどのようなものでしょうか? –
"Time Profiler"のようなものです。 – zneak