我正在使用requestImage
中的PHCachingImageManager
来获取图像。
let options = PHImageRequestOptions()
options.version = .current
PHCachingImageManager().requestImage(
for: asset,
targetSize: PHImageManagerMaximumSize, // resizeMode will be ignored
contentMode: .default, // defaults to aspectFit
options: options,
resultHandler: { image, _ in
image.size // => <output image size>
}
)
在大多数情况下,此方法效果很好,但是我发现了一个我想纠正的问题。
我想要原始图像,因此需要PHImageManagerMaximumSize
属性。
根据方向的不同,未旋转图像的最终图像尺寸为4032x3024或3024x4032。
在手机的“照片”应用中旋转图像后,尺寸为1500x1124。
原始
(lldb)po资产:
E8710CF9-BA53-49FA-8535-D2B41EFA7AF2 / L0 / 001 mediaType = 1/0,sourceType = 1,(4032x3024),creationDate = 2019-05-24 06:42:17 +0000,位置= 1,隐藏= 0,收藏夹= 0 突发= 579849A0-156F-4F53-B368-BE09B8502DE0 / 2
(lldb)po图片
▿可选 -some:,{4032,3024}
已轮换:
(lldb)po资产:
0x10760df20> E8710CF9-BA53-49FA-8535-D2B41EFA7AF2 / L0 / 001 mediaType = 1/0,sourceType = 1,(4032x3024),creationDate = 2019-05-25 06:18:13 +0000,位置= 1,隐藏= 0,收藏夹= 0
(lldb)po图片
▿可选 -some:,{1500,1124}
资产的信息大小似乎正常,只有最终的uiimage大小不合适。
我尝试使用这些选项,但似乎没有关系。我尝试通过空投上传图片,大小似乎还可以,所以我一定做错了。
有没有什么想法可能会有所帮助?