iOS中的Png-捆绑包中的png vs下载-png8 vs png24

保罗

我正在编写一个iOS应用程序,但对使用png和性能存在一些疑问,但我找不到任何答案。

我的应用使用来自2个来源的png,其中一些位于应用捆绑包中,而另一些则从互联网下载并存储在本地。我经常使用的应用程序包中的程序包,我知道xCode在编译应用程序(字节交换和预乘Alpha)时会针对iOS优化它们。我对从互联网上下载的png有以下问题。

1)如果图像是在捆绑包中下载的,那么在iOS中使用png仍然可以获得性能优势。xCode优化可以某种方式应用于下载的图像吗?

2)除了文件大小以外,使用png8和png24还有什么优点(或缺点)?从本地文件扩展时,它们占用的内存更少吗?扩展它们是否需要花费较少的精力?动画有什么性能提升吗?还是仅从较小的文件大小和更好的下载时间中获益?

预先感谢您的任何答案。

保罗

钟洁
  1. PNG优化是由Apple自己的版本完成的pngcrush(即使其作者声明

    [...] 2.更改后的版本必须清楚地标上原样,并且不得将其错误地表示为原始二进制文件或源文件。http://optimate.dl.sourceforge.net/project/pmt/pngcrush/1.7.70/pngcrush-1.7.70-HELP.txt

    -但Apple不在乎这些细节)。pngcrushXCode在编译源代码时调用编译后,XCode与以后下载的图像无关。但是,您可以pngcrush在上传新图像之前应用Apple的“优化”新图像。在我看来,这是否值得付出努力值得怀疑。

  2. 这取决于连续四次。(如果我计数正确)。8位PNG比24位PNG小3倍。使用单字节而不是3或4(RGB,RGBA)应该更快。当然,它使用更少的内存。它主要(或仅可能)取决于图像的内容。用PNG的算法会严重压缩照片图像,当以8位颜色索引模式保存时,图像会遭受颜色量化。具有相同颜色大区域的典型“计算机”图像(例如,文本编辑器的快照)可能会非常快速地解压缩。

如果你正在打算使用8位PNG,不使用“优化”,苹果修改后的版本适用。它的主要修改是重新排列RGB(A),以使其与iPhone / iPad的显示对齐。(其次要目的似乎是使图像无效为有效的PNG。)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用png8代替png24作为RGB高度图

来自分类Dev

SDL2逐像素读取PNG24

来自分类Dev

UIBezierPath vs将png放在imageassets中

来自分类Dev

强制ngx_pagespeed使用png8

来自分类Dev

将PNG8转换回PNG32的工具

来自分类Dev

libpng 1.616在VS2012 C ++中的png_read_png上崩溃

来自分类Dev

在mono 2013 + VS 2013中使用png作为内容

来自分类Dev

Android应用程序中的ShapeDrawable Vs Png图像

来自分类Dev

如何确定PNG是PNG-8还是PNG-24?

来自分类Dev

在不丢失Alpha通道的情况下将PNG32文件转换为PNG8

来自分类Dev

我想使用简单的图标,例如iOS中“设置”左侧的图标。使用svg vs png有什么好处?

来自分类Dev

Vector Drawable vs Png APK分割

来自分类Dev

寻找研究:PNG Sprite vs SVG sprite vs Icon字体

来自分类Dev

寻找研究:PNG Sprite vs SVG sprite vs Icon字体

来自分类Dev

PNG vs JPG,用于在Android应用程序中显示图片(而非图标)

来自分类Dev

从Shiny(R)下载png

来自分类Dev

gnuplot中的png终端

来自分类Dev

gnuplot中的png终端

来自分类Dev

在R / ubuntu中安装软件包“ png”

来自分类Dev

无法从Shiny下载.png文件

来自分类Dev

在iOS中从PNG图像中提取形状轮廓点

来自分类Dev

在iOS中从PNG图像中提取形状轮廓点

来自分类Dev

R:在下载png时密谋包错误

来自分类Dev

PHP中的Imagick PNG压缩

来自分类Dev

从管道中读取png图像

来自分类Dev

在TextArea中插入ICON / PNG

来自分类Dev

无法在gnuplot中绘制PNG

来自分类Dev

PIL中的PNG图像质量

来自分类Dev

处理内存中的png文件