转换一个正常的PNG到iPhone优化的格式(Converting a normal PNG to

2019-10-17 02:58发布

我有一个从互联网上下载图片,后来保存它们显示的iPhone应用程序。

用户可以选择将图像从一个UITableView查看,表视图具有不同大小显示原始图像的缩略图定制单元。

当大图像首先下载它缩小到缩略图大小和缩略图使用UIImagePNGRepresentation保存。

我想这样做的是保存缩略图在优化的iPhone PNG格式。 我怎样才能做到这一点? 它只是通过加载原大图片到内存中并保存它神奇地出现? 我必须在保存之前做缩略图任何进一步的处理?

Answer 1:

机会是UIImagePNGRepresentation不创建图像,因为它们是无comformant PNG图像,并且不能被别的阅读。 如果他们的API,无法读取我认为它会记录所产生的PNG文件,以及任何人谁上传的PNG从手机会注意到他们没有工作。

优化是有用的,但最优化的PNG图像是在优化作为构建过程的一部分做了UI的一部分。 机会是进行优化会抵消你从它那里得到任何收益的成本。



Answer 2:

所以,事实证明,在优化的格式使用RGB565色彩空间根本无法获得在CGGraphicsContext,这是所有UIwhatever组件使用的渲染类。

所以,如果我写一些代码在保存前改变图像的色彩空间,我不能让纹理回一个UI类。 使用它的唯一方法就是直接加载到OpenGL的内脏和我的应用程序使用OpenGL。



Answer 3:

不要担心“优化PNG”格式,因为它不作出任何显著差异。

它不影响渲染速度可言 ,并且加载速度是按文件大小超过文件格式的详细规定 。

因此,简单地把它保存,会给你最小的文件格式。 如果你不使用的透明度,那么它可能是JPEG。

如果您需要透明度,并可以花费更多的CPU时间保存图像时,则包括pngquant在你的程序(这是在类似BSD许可证)和收缩的PNG图像到8位的调色板。



文章来源: Converting a normal PNG to iPhone Optimized format