【问题标题】:Received memory warning objective c收到内存警告目标c
【发布时间】:2015-11-07 20:53:49
【问题描述】:

我收到 Received memory 警告 3 次,然后应用程序崩溃。

我有一个滑块需要将模糊值更改为 UIImageView 图像。 我尝试使用 dispatch_async 并使用 imageView.image =nil; 清理图像内存;但问题没有解决。

从 uislider 调用此代码:

dispatch_async(dispatch_get_main_queue(), ^(void)
      {
       imageView.image =nil;
       imageView.image  = [self blurImage:originalImage withValue:value];
      });




-(UIImage *)blurImage:(UIImage *)theImage withValue:(nullable id)value
{
  CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
  [gaussianBlurFilter setDefaults];
  CIImage *inputImage = [CIImage imageWithCGImage:[theImage CGImage]];
  [gaussianBlurFilter setValue:inputImage forKey:kCIInputImageKey];
  [gaussianBlurFilter setValue:value forKey:kCIInputRadiusKey];

  CIImage *outputImage = [gaussianBlurFilter outputImage];
  CIContext *context   = [CIContext contextWithOptions:nil];
  CGImageRef cgimg     = [context createCGImage:outputImage fromRect:[inputImage extent]];
  UIImage *image       = [UIImage imageWithCGImage:cgimg];

  return image;
}

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    其中一个假设是您没有发布 CIImageRef cgimg。这可能会增加内存。

    -(UIImage *)blurImage:(UIImage *)theImage withValue:(nullable id)value
    {
      CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
      [gaussianBlurFilter setDefaults];
      CIImage *inputImage = [CIImage imageWithCGImage:[theImage CGImage]];
      [gaussianBlurFilter setValue:inputImage forKey:kCIInputImageKey];
      [gaussianBlurFilter setValue:value forKey:kCIInputRadiusKey];
    
      CIImage *outputImage = [gaussianBlurFilter outputImage];
      CIContext *context   = [CIContext contextWithOptions:nil];
      CGImageRef cgimg     = [context createCGImage:outputImage fromRect:[inputImage extent]];
      UIImage *image       = [UIImage imageWithCGImage:cgimg];
      //Release the core image reference
      CGImageRelease(cgimg)
      return image;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多