【问题标题】:Load image different size加载不同尺寸的图片
【发布时间】:2016-07-19 19:25:10
【问题描述】:

我的支持文件夹中有一张图片,我想使用手机的整个宽度。他们是这样的:

img.png -> 320x205
img@2x.png -> 750x410
img@3x.png -> 1242x615

我像这样加载图像:

UIImage *img = [UIImage imageNamed:@"img"];

当我记录这张图片的大小时,我得到:

NSLog(@"@@@ Width: %f - Height: %f", img.size.width, img.size.height);
@@@ Width: 375.000000 - Height: 205.000000

为什么我的图片加载的大小与其文件不同?

【问题讨论】:

  • 从技术上讲,您的图像显示了正确的值。如果 img @2x 的大小是 750x410,那么 img 应该是 375x205,这是正确的。
  • 所以我可能弄错了这个图像尺寸。我希望我的图像是整个 iphone 宽度。在 iphone 5 中,我有 320dp,比例为 1,对吗?所以它应该是 320px 的宽度。在 iphone 6 中,我有 375dp,比例为 2,所以宽度为 750px。我想错了吗?

标签: ios objective-c uiimage


【解决方案1】:

size.widthsize.heightpoint 为单位,而不是 pixel

Apple 使用允许独立于手机分辨率缩放图像的点。

然后针对不同的手机以不同的比例呈现图像。

@1x:原装 iPhone

@2x:iPhone 4、5、6

@3x:iPhone 6 加号

您可以通过以下方式获取比例值:

CGFloat scale = [UIScreen mainScreen] scale];

【讨论】:

    【解决方案2】:

    这里的 2x 和 3x 表示图像的大小将是原始图像的 2 英寸和原始图像的 3 英寸。 您没有该格式的图像大小,因此它会显示这种类型的输出。

    示例:- 如果我的图像 1x 是:- 320 * 240 则 2x 将是:- 640 * 480 3x 将是:- 960 * 720 这是放置 2x 和 3x 图像的正确格式。完成此操作后,您的日志将显示正确答案

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 2011-04-17
      • 1970-01-01
      • 2021-07-09
      • 2015-12-31
      • 2020-12-26
      • 1970-01-01
      • 2015-04-20
      • 2020-06-19
      相关资源
      最近更新 更多