iOS上的CGBitmapInfo值性能

iOS上的CGBitmapInfo值性能,第1张

概述我正在UIView的drawRect中绘制CGBitmapContext的片段.什么是最好的CGBitmapInfo枚举值,以确保性能最佳?现在我正在使用kCG ImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big,但我也看到了这个stackoverflow问题片段,它提出了一个替代方案: Why does this code decompre 我正在UIVIEw的drawRect中绘制CGBitmapContext的片段.什么是最好的CGBitmAPInfo枚举值,以确保性能最佳?现在我正在使用kCG ImageAlphaPremultiplIEdLast | kCGBitmapByteOrder32Big,但我也看到了这个stackoverflow问题片段,它提出了一个替代方案:

Why does this code decompress a UIImage so much better than the naive approach?

// makes system don't need to do extra conversion when displayed.kCGImageAlphaPremultiplIEdFirst | kCGBitmapByteOrder32little

我的CGBitmapContext是可变的,因此用户可以在其上绘图,向其添加图像等.

解决方法 我用kCGImageAlphaPremultiplIEdLast |进行了测试kCGBitmapByteOrder32Big vs kCGImageAlphaPremultiplIEdFirst | kCGBitmapByteOrder32little和分析器确实告诉我代码路径略有不同.

kCGImageAlphaPremultiplIEdFirst | kCGBitmapByteOrder32little直接复制内存,而kCGImageAlphaPremultiplIEdLast | kCGBitmapByteOrder32Big通过转换函数.

这对我在CGBitmapContext中绘制路径所花费的总时间(甚至在iPod 4上)几乎没有影响,然后调用setNeedsdisplayInRect:在屏幕上显示它们.此外,由于总时间基本相同,我坚持使用kCGImageAlphaPremultiplIEdLast | kCGBitmapByteOrder32Big.

编辑我切换回kCGBitmapByteOrder32little,以便与使用BGRA(小端)字节顺序的其他iOS框架(如AVFoundation)具有更好的兼容性,因为它对性能没有影响.

总结

以上是内存溢出为你收集整理的iOS上的CGBitmapInfo值性能全部内容,希望文章能够帮你解决iOS上的CGBitmapInfo值性能所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存