美文网首页
PNG与iOS优化选项

PNG与iOS优化选项

作者: hao_da_da | 来源:发表于2020-06-29 10:50 被阅读0次

        不知道大家有没有发现在从本地读取png图片的时候data与原数据不一样,读取如下:

        NSString *path = [[NSBundle mainBundle] pathForResource:@"11" ofType:@"png"];

        NSData *data = [NSData dataWithContentsOfFile:path];

        将data进行数据块拆分得到:

    xcode读取chunks

        而实际的data数据,从终端中读取并拆分结果:

    实际chunks

    可以看到xcode(本人用的10.0)对图片数据进行了处理,增加了一些新的chunk并对IDAT数据进行了拆分。还有人发现,标准的24bit PNG文件存储方式是按照顺序(红/绿/蓝/透明度)这样来存每一个像素,即RGBA,而经过Xcode优化之后的PNG文件像素顺序变成了BGRA,这样的非标准的PNG文件在一般操作系统也就没办法读了。苹果这么做是有原因的,在OpenGL的wiki有一篇文章 提到了绝大部分GPU的图像/纹理显存每个单元都是24bit的,RGBA和BGRA都有,但BGRA是主流的。这样就说得通了:苹果为了减少图像运算时花在数据交换(从文件系统到显示出来)的时间,运用了类似DMA的原理,图形数据可以在总线里直接走而不用花掉CPU的时间去协助处理。

    相关文章

      网友评论

          本文标题:PNG与iOS优化选项

          本文链接:https://www.haomeiwen.com/subject/mqnzcqtx.html