UIimage大小与实际图像分辨率(UIImageWriteToSavedPhotosAlbum)不同

时间:2018-10-01 12:44:27

标签: ios swift uiimage

我正在从ARFrame获取图像并将其转换为UIImage(imageToSave)。

var imageToSave = convert(cmage:arFrameImage)
UIImageWriteToSavedPhotosAlbum(imageToSave, nil, nil, nil);

我将imageTosave保存到iOS相册。当我打印imageToSave.size时,我得到 1080.0,1920.0 。当我检查图片分辨率(将其导入到Mac后)为 1080.0,1920.0

然后我在此imageToSave上画些东西。

let imageSize = imageToSave.size
let scale: CGFloat = 0
UIGraphicsBeginImageContextWithOptions(imageSize, false, scale)
image.draw(at: CGPoint(x: 0, y: 0))
let rectangle = CGRect(x: 10, y: 10, width: 10, height: 10)
UIColor.white.setFill()
UIRectFill(rectangle)

let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
print("========Image size B)=======")
print(newImage!.size)
UIImageWriteToSavedPhotosAlbum(newImage!, nil, nil, nil);

当我打印newImage!.size时,得到的是 1080.0,1920.0 。但是,当我检查图片分辨率(将其导入到Mac后)为 3240.0,5760.0 。为什么真实的(导入的)图像分辨率与newImage!.size不同?

1 个答案:

答案 0 :(得分:4)

scale = 0上创建图像时,将以设备的主屏幕比例保存图像-在这种情况下为3倍。

您要创建的图像是1080x1920个点 @ 3x-3240 x 5760个 pixels

如果您希望最终图像为1080x1920,请使用scale = 1

相关问题