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 – “执行昂贵的卸载 *** 作!” – 它是什么,以及如何解决它?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)