对图像的 @3x 指定感到困惑
Posted
技术标签:
【中文标题】对图像的 @3x 指定感到困惑【英文标题】:Confusion about @3x designation for images 【发布时间】:2014-12-19 23:32:25 【问题描述】:在我的应用程序中,我生成了一些要用于 iPhone6+、6、5 和 5s 的 @3x 图像。这在 ios8 上运行良好,但是当我在带有 iOS7.1 的 iPhone5s 上进行测试时,它无法识别 @3x,因此图像不会出现。
我应该在这里采取什么方法? @3x 图像都被正确测量,如果我只是将它们命名为 @2x 会产生相同的效果,因为 iPhone 6+ 会弄清楚如何处理它?
【问题讨论】:
@3x 图片仅适用于 iPhone 6+。 @rmaddy 我知道,但为了缩小我的捆绑包大小,我重复使用了很多图像。如果我将所有 3x 文件重命名为 2x,对我的 iPhone6+ 会有什么影响吗? 当然,@2x 图像在 iPhone 6+ 上看起来会像素化(略微),因为它们会被缩放。 @rmaddy 我写了我对情况的理解作为答案,我想这就是你想说的?感谢您的帮助。 从 3x 重命名为 2x 并不是一件简单的事情。如果 1x 图像是 24x48,那么 2x 需要是 48x96,3x 需要是 72x120。如果您将 72x120 3x 图像重命名为 2x,那么 iOS 会认为图像是 36x60 点而不是 24x48 点。一切都会错的。 【参考方案1】:您必须将所有图像(如 @1x、@2x、@3x 和 Retina 4 @2x)放置在所有设备上。
Apple 为所有图像及其使用提供文档。
查看 iOS 人机界面指南:https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1
例如:
【讨论】:
谢谢。我知道这一点,但在我的情况下,我正在重用 iPad 2x 来为我的 iPhone6+ 3x 工作,所以这有点令人困惑。但我认为资产目录是要走的路。【参考方案2】:无法确定您是否已经在使用 Xcode 资产目录。这是针对不同图像大小的资产管理。
在此处阅读更多信息:https://developer.apple.com/library/ios/recipes/xcode_help-image_catalog-1.0/Recipe.html#//apple_ref/doc/uid/TP40013303-CH1-SW1
创建资产目录
-
如果您现有项目并且没有名为 Images.xcassets 的文件,请使用 Command+N 添加新文件
添加文件
-
将文件拖放到编辑器上或使用编辑器底部的“+”图标。请注意
1x
、2x
、3x
的选项已经存在。
使用图片
-
图像可通过其名称访问。例如:
[UIImage imageNamed:@"icon_info"];
。它将使用相应的大小。
【讨论】:
谢谢。这就是解决我的情况的原因。也许你也可以添加它,但我必须将所有 3x 图像更改为 2x(如果我还没有 2x),以便它可以在 iOS7 及更低版本上运行。如果您已经有图像的 3x 和 2x 和 1x,那么它将适用于所有 iOS 和设备。但同样,我重用了大量图像以节省二进制文件中的空间。以上是关于对图像的 @3x 指定感到困惑的主要内容,如果未能解决你的问题,请参考以下文章
为啥 deeplab v3+ 模型对图像边界外的像素感到困惑?
我想在使用 JFC/Swing 工具包的应用程序中使用动画 GIF 图像。我对这个工具包感到困惑
Google Protocol Buffers - 对编码解码 base64 char * c 字符串协议缓冲区数据感到困惑