首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在* iPhone上将.png转换为PVRTC *

在* iPhone上将.png转换为PVRTC *
EN

Stack Overflow用户
提问于 2009-06-20 04:32:29
回答 3查看 3.8K关注 0票数 6

是否有一个标准的机制或已知的库,可以在iPhone上将.png图像转换为压缩的PVRTC纹理(而不是在使用OS上的标准工具进行开发期间)。

我的应用程序中有许多.png纹理,但交换是一个问题。我想在设备上创建.pngs的PVRTC变体,以防在应用程序启动时(或第一次加载应用程序时)可用内存不足。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-08 12:02:39

我还没有在网上看到任何关于如何手动构建PVRTC图像的信息,据我所知,iPhone中没有对此的支持(也不需要读取PVRTC文件)。

对于大多数应用程序来说,包含或构造两个版本的文件意义不大。在最佳条件下,PVRTC版本实际上与PNG版本几乎没有区别,实际上只是针对直接流式传输到视频内存而优化的文件的“预处理”版本。

通常情况下,最好检查所有镜像,并决定如何最好地打包镜像,以平衡所有用户的内存节约和质量,而不仅仅是在特定的内存受限情况下。

需要考虑的几件事(如果这是多余的知识,很抱歉):

  1. PVRTC文件在处理复杂的alpha混合图像时可能会出现问题,因为预处理可能会导致沿混合边缘出现难看的伪影。
  2. 不透明的PNG文件应在原始图像中删除其alpha通道(节省内存和混合开销)。
  3. 对于颜色范围有限的图像,请将图像从PNG32减少为PNG16或PNG8以节省磁盘内存。
  4. 如果这适用于基于OpenGL的程序,请考虑使用支持替代像素格式(如565和4444 )的增强版本的Texture2D (例如来自Cocos2D)。通过仔细选择与基于OpenGL的程序的原始image.
  5. Additionally中的颜色平衡相对应的像素格式,这可以在对图像质量影响最小的情况下极大地减少显卡的开销,避免使用单独的图像(320x480)作为背景,因为这将导致每个图像在内存中的纹理为512x512。将图像分割成更小的部分,或者将图像制作成512x512,然后用其他图像填充额外的空间,这样只需要加载一种纹理。
  6. 就像所有事情一样,首先关注最大的图像,以获得最大的性价比。

同样值得注意的是,由于您的应用程序将是唯一运行的(系统应用程序除外),因此唯一的实际内存开销将是有限的“磁盘”空间。制作所有图像文件的第二个副本实际上将对您不利,而不是有所帮助。

巴尼

票数 2
EN

Stack Overflow用户

发布于 2009-06-20 04:37:59

我会小心地假设这会对你有帮助。一旦你引用图像一次,也就是将它们加载到UIImage中,iPhone就会开始缓存你的pngs,不管你喜欢与否。在我看来,压缩它们并不能很好地实现您在这里寻找的东西。

票数 0
EN

Stack Overflow用户

发布于 2012-09-10 16:14:48

如果您想在IOS上将镜像压缩为PVR,您可以考虑使用OpenSceneGraph插件pvr:

http://www.openscenegraph.org/projects/osg/browser/OpenSceneGraph/branches/OpenSceneGraph-3.0/src/osgPlugins/pvr/ReaderWriterPVR.cpp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1020944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档