访问资产目录中具有特定分辨率的图像

2023-11-25

我有一个名为“SmileyFace”的图像集,其中包含 1x、2x 和 3x 图像尺寸。我想将图像集中的特定尺寸复制到粘贴板。如何在下面的代码中以编程方式引用 1x、2x 或 3x?

let image = UIImage(named: "SmileyFace" )
let image2 = UIImagePNGRepresentation( image )
UIPasteboard.generalPasteboard().setData(image2, forPasteboardType: "public.png")

此代码复制 1x.我想复制 2x 图像。

我还没有找到任何东西苹果文档这似乎参考了这个。


您可以使用imageAsset.registerImage() method:

  let scale1x = UITraitCollection(displayScale: 1.0)
  let scale2x = UITraitCollection(displayScale: 2.0)
  let scale3x = UITraitCollection(displayScale: 3.0)

  let image = UIImage(named: "img.png")!
  image.imageAsset.registerImage(UIImage(named: "img_2x.png")!, withTraitCollection: scale2x)
  image.imageAsset.registerImage(UIImage(named: "img_3x.png")!, withTraitCollection: scale3x)

您可以为所有比例注册 2x 图像。

但是,我认为访问具​​有特定分辨率的图像不是一个好主意。 1x、2x 和 3x 图像集的想法是让系统决定应该加载哪个图像。如果您确实愿意,可以将 1x、2x 和 3x 图像的名称更改为 SmileyFace-Small、SmileyFace-regular、SmileyFace-large。

UPDATE: func imageWithTraitCollection(traitCollection: UITraitCollection) -> UIImage可以引用特定比例的图像:

  let image1 = image.imageAsset.imageWithTraitCollection(UITraitCollection(traitsFromCollections: [scale1x]))
  let image2 = image.imageAsset.imageWithTraitCollection(UITraitCollection(traitsFromCollections: [scale2x]))
  let image3 = image.imageAsset.imageWithTraitCollection(UITraitCollection(traitsFromCollections: [scale3x]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问资产目录中具有特定分辨率的图像 的相关文章

随机推荐