如何在 iOS 设备上调整图像大小?

Posted

技术标签:

【中文标题】如何在 iOS 设备上调整图像大小?【英文标题】:How to size images on iOS devices? 【发布时间】:2018-12-18 02:08:41 【问题描述】:

我正在制作一个 spritekit 游戏。我了解如何在 SKScene 中调整我的图像大小,因为它在所有设备上都是 750x1334 点,但应用程序的主页使用 UIKit/a 集合视图控制器,所以我不确定如何调整我的图像大小。我想让图像占据屏幕宽度的 1/3,然后让图像高度等于图像宽度。

iPhone SE 是 320x568 点

iPhone 7 是 375x667 点

iPad Pro 10.5 英寸为 1112x834 点

我是否只制作最大可能设备宽度(1112 点)的 1/3 的图像,然后让较小的设备缩小图像?即 1112 点除以 3 等于 370 点,所以制作宽高为 370 点的图像(740.6px@2x 和 1112px@3x)?

【问题讨论】:

您是否使用故事板添加图像视图?如果是,那么您可以在设计图像视图时按宽度或高度进行比例 也许,我的问题并不清楚。我了解如何使图像成为屏幕宽度的 1/3。我不知道将图像保存为多少点和像素,以便它在所有屏幕尺寸上看起来都不错。 您可能需要手动制作 1x 2x 和 3x 图像 现在在给出的 3 个示例中,您可能希望为您的 ipad 和 iphone 分配单独的图像资产和故事板,因为它们都是 @2x。 【参考方案1】:

我想让图像占据屏幕宽度的 1/3,然后让图像高度等于图像宽度。我是否只制作最大可能设备宽度(1112 点)的 1/3 的图像,然后让较小的设备缩小图像?

没有。当您“让较小的设备缩小图像”时,您仍在加载全尺寸图像,从而浪费内存。此外,让运行时自动缩小图像(例如,因为您使用具有宽高比或宽高比内容模式的图像视图)会浪费时间和处理能力,通常是在应用尝试启动的关键时刻。

正确的做法是:

在您的应用 bundle 中,您应该只包含 一个 尺寸的图像,可能是三种分辨率,这应该是可接受的最小尺寸在您将要显示的最大屏幕上。

在您的代码中,您应该确定图像将实际在我们正在运行的设备的屏幕上显示的尺寸,以及加载缩小到该尺寸的图像的缩略图。

这样,不会浪费内存;内存中保存的图像就是显示的图像。

【讨论】:

【参考方案2】:

Storyboard,您可以使用以下步骤,

    在图像视图和实际视图之间设置等宽和等高 选择equal width constraint 并从1 to 1:3 更改乘数 选择equal height constraint 并从1 to 1:3 更改乘数 图像视图现在应该占屏幕大小的 1:3。

附上iPhoneiPad 设计的屏幕截图,

希望对你有帮助。

【讨论】:

没有。不要使用图像视图大小来缩小巨大图像的大小。这既浪费时间又浪费内存。正确的方法是在加载时以正确的显示尺寸加载图像。 @matt,这不会缩小一个巨大的图像,用户仍然可以添加一个大约 1/3 屏幕大小的图像,然后让故事板根据不同的差异来缩放它设备 @matt 没关系,你说的更多是关于在 iphone 上使用 ipad 图形 是的,因为这就是问题所在。

以上是关于如何在 iOS 设备上调整图像大小?的主要内容,如果未能解决你的问题,请参考以下文章

上传所有移动设备时如何调整图像大小?

如何在上传到服务器之前在 iOS 上压缩/调整图像大小?

使用 jquery mobile 调整图像大小以适应移动设备上的屏幕

如何解决 iOS 设备的错误调整大小行为

在模态窗口内调整图像大小

如何防止 iOS 上的浏览​​器调整图像大小?