私のアプリでは、コアイメージフィルターを使用しています。
私のコード:
- (UIImage*)applyRGBWithRed:(float)red withGreen:(float)green withBlue:(float)blue
{
ciimage=[CIImage imageWithCGImage:self.CGImage];
// Make the filter
CIFilter *colorMatrixFilter = [CIFilter filterWithName:@"CIColorMatrix"]; // 2
[colorMatrixFilter setDefaults]; // 3
[colorMatrixFilter setValue:ciimage forKey:kCIInputImageKey]; // 4
[colorMatrixFilter setValue:[CIVector vectorWithX:red Y:0 Z:0 W:0] forKey:@"inputRVector"]; // 5
[colorMatrixFilter setValue:[CIVector vectorWithX:0 Y:green Z:0 W:0] forKey:@"inputGVector"]; // 6
[colorMatrixFilter setValue:[CIVector vectorWithX:0 Y:0 Z:blue W:0] forKey:@"inputBVector"]; // 7
[colorMatrixFilter setValue:[CIVector vectorWithX:0 Y:0 Z:0 W:1] forKey:@"inputAVector"]; // 8z
// Get the output image recipe
CIImage *outputImage = [colorMatrixFilter outputImage]; // 9
// Create the context and instruct CoreImage to draw the output image recipe into a CGImage
context = [CIContext contextWithOptions:nil];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]]; // 10
self.saveImage=[UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
return self.saveImage;
}
大きな画像(つまり、1.4 MBを超えるサイズ)を処理しているときに、メモリ警告が表示され、アプリがクラッシュします。
なぜクラッシュにつながるのですか?このシナリオをどのように管理できますか?
どんなアドバイスやアイデアも高く評価できます。私はこれで一週間以上打った...
前もって感謝します....
プロファイラーで実行している間、それは次の出力を与えます