ios – “执行昂贵的卸载 *** 作!” – 它是什么,以及如何解决它?

ios – “执行昂贵的卸载 *** 作!” – 它是什么,以及如何解决它?,第1张

概述我的Core Filters测试应用程序的调试控制台显示以下消息: CGImageRef 0x7a0e890 has row byte padding. Performing a costly unpadding operation! 我无法在标题或Google搜索中找到该确切消息(减去指针信息)的匹配. 我的问题是(1)这意味着什么;(2)我如何纠正这种情况? 以下是我如何使用CIFilter生 我的Core Filters测试应用程序的调试控制台显示以下消息:

CGImageRef 0x7a0e890 has row byte padding. Performing a costly unpadding operation!

我无法在标题或Google搜索中找到该确切消息(减去指针信息)的匹配.

我的问题是(1)这意味着什么;(2)我如何纠正这种情况?

以下是我如何使用CIFilter生成过滤的UIImage的示例.

- (UIImage*)sepia{        CIImage *beginImage = [CIImage imageWithCGImage:[self CGImage]];    CIContext *context = [CIContext contextWithOptions:nil];    CIFilter *filter = [CIFilter filterWithname:@"CISepiaTone"                                   keysAndValues: kCIInputimageKey,beginImage,@"inputIntensity",[NSNumber numberWithfloat:0.8],nil];    CIImage *outputimage = [filter outputimage];    CGImageRef cgimg =     [context createCGImage:outputimage fromrect:[outputimage extent]];    UIImage *newimg = [UIImage imageWithCGImage:cgimg];    self = newimg;    CGImageRelease(cgimg);    return self;}
解决方法 字节填充是在每个图像行的末尾添加的额外字节,以确保每行在内存中的2 ^ n字节上开始.这会以图像大小为代价增加内存访问性能.如果比较CGImageGetBytesPerRow的结果和从图像尺寸和每像素字节数计算的每行预期字节数,则可以检查此项.

至于如何纠正unpadding – 你需要确切地找到触发unpadding的 *** 作并从那里取出它.取消填充是昂贵的,因为基本上整个图像存储器需要被移动以移除所有行尾间隙.

总结

以上是内存溢出为你收集整理的ios – “执行昂贵的卸载 *** 作!” – 它是什么,以及如何解决它?全部内容,希望文章能够帮你解决ios – “执行昂贵的卸载 *** 作!” – 它是什么,以及如何解决它?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存