首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIImages的图像大小,1024x1024?

UIImages的图像大小,1024x1024?
EN

Stack Overflow用户
提问于 2012-08-20 02:35:54
回答 1查看 4.7K关注 0票数 5

苹果文件声明:

您应该避免创建大小大于1024x1024的UIImage对象。除了这样的图像所消耗的大量内存外,当您将图像用作OpenGL ES中的纹理或将图像绘制到视图或层时,可能会遇到问题。如果您正在执行基于代码的操作,例如通过将大于1024x1024像素的图像绘制到位图背景的图形上下文,则此大小限制不适用。实际上,您可能需要以这种方式调整图像的大小(或将其分解为几个较小的图像),以便将其绘制到视图之一。

我想这意味着,如果我们在处理非方形图像,我们应该把它们分解成更小的图像?是否有任何具体的文件或解释,或有人有任何经验提示?

感谢您的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-20 17:06:03

在A5前的iOS设备上,OpenGL ES的最大纹理大小是2048x2048 (苹果的文档在这方面是错误的,因为它是1024x1024)。这意味着你不能有一个比这两个维度更大的图像。较新的iOS设备(iPhone 4S、iPad 2、iPad 3)的最大纹理大小为4096x4096。

这并不意味着你必须有正方形图像,只是图像的宽度和高度不能超过2048 (同样,在更新的设备上是4096 )。如果你试图这样做,我相信你的形象将只是渲染为黑色。

这曾经是对所有没有UIViews支持的CATiledLayer的限制,但我相信他们现在会自动对足够大的视图进行平铺。如果您需要处理大于2048x2048的映像,则需要将其宿主在CATiledLayer或类似的文件中。

不过,这些记忆提醒是值得注意的。图像以未压缩的形式存储在内存中,无论它们的源是什么,所以您将看到每2048x2048图像中有16,777,216字节(RGBA为每像素4字节)。如果你不小心的话,那就能很快地加起来。

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

https://stackoverflow.com/questions/12031704

复制
相关文章

相似问题

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