核心图形图像混合不会释放内存

妮基塔·史蒂克(Nikita Shytyk)

我将两个图像与以下代码混合:

+ (UIImage *)xxx_blendedImageWithFirstImage:(UIImage *)image
                                secondImage:(UIImage *)secondImage
                            renderedInFrame:(CGRect)frame
                                      alpha:(CGFloat)alpha {
    UIGraphicsBeginImageContextWithOptions(frame.size, NO, UIScreen.mainScreen.scale);
    
    [image drawInRect:frame];
    [secondImage drawInRect:frame blendMode:kCGBlendModeNormal alpha:alpha];
    
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return newImage;
}

这段代码被称为在IBActionUISlider,所以它被称为在每个滑块位置变化。这是此代码的内存占用量:

内存占用

它需要230 MB,然后由于内存压力而失败。

如何使此代码正常工作?

妮基塔·史蒂克(Nikita Shytyk)

添加后@autoreleasepool

+ (UIImage *)xxx_blendedImageWithFirstImage:(UIImage *)image
                                secondImage:(UIImage *)secondImage
                            renderedInFrame:(CGRect)frame
                                      alpha:(CGFloat)alpha {
    UIImage *newImage = nil;
    @autoreleasepool {
        UIGraphicsBeginImageContextWithOptions(frame.size, NO, UIScreen.mainScreen.scale);

        [image drawInRect:frame];
        [secondImage drawInRect:frame blendMode:kCGBlendModeNormal alpha:alpha];

        newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    }
    return newImage;
}

也许应该有一些手动发布,但是现在内存占用看起来像: 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SVG 图形图像处理

来自分类Dev

核心图形的内存问题

来自分类Dev

删除图像后,Java ImageIO 不会释放内存

来自分类Dev

UIWebView不会释放内存

来自分类Dev

Matplotlib图形图像到base64

来自分类Dev

如何将图形图像转换为ASCII艺术?

来自分类Dev

核心数据不会从内存中释放UIImage数据(ImageIO_PNG_Data)

来自分类Dev

核心数据不会从内存中释放UIImage数据(ImageIO_PNG_Data)

来自分类Dev

回收位图不会释放内存

来自分类Dev

回收位图不会释放内存

来自分类Dev

在JSF页面中将图像显示为来自数据库的byte []作为图形图像

来自分类Dev

在应用程序发送的电子邮件中包含图形图像

来自分类Dev

如何知道鼠标单击是否在图形图像Java上

来自分类Dev

使用钩接到图形图像上的CSS和Span / A标签充当按钮

来自分类Dev

如何在特定的帖子中编辑meta标签以在wordpress中打开图形图像和标题

来自分类Dev

关闭JavaFX Tab不会释放内存

来自分类Dev

覆盖对象实例不会释放内存吗?

来自分类Dev

ImageView使用的内存永远不会释放

来自分类Dev

释放的内存不会导致页面错误

来自分类Dev

python中的多处理不会释放内存

来自分类Dev

DotNetRDF:Graph或CompressingTurtleWriter不会释放内存

来自分类Dev

重新分配NSString不会释放内存

来自分类Dev

关闭JavaFX Tab不会释放内存

来自分类Dev

使用UIImage重新释放UICollectionView不会释放内存

来自分类Dev

图像未在内存中释放

来自分类Dev

图像未在内存中释放

来自分类Dev

获取由getline()分配的核心转储释放内存

来自分类Dev

Perl子例程中的变量不会释放内存

来自分类Dev

工作者完成后,Sidekiq不会释放内存

Related 相关文章

热门标签

归档