Ios UIImage转换为数据并返回更改大小?

Ios UIImage转换为数据并返回更改大小?,ios,swift,uiimage,Ios,Swift,Uiimage,我以编程方式创建一幅图片,将其转换为数据并返回,然后得到不同的图片 let image1: UIImage = { let size = CGSize(width: 50, height: 50) let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height) UIGraphicsBeginImageContextWithOptions(size, false, 0

我以编程方式创建一幅图片,将其转换为数据并返回,然后得到不同的图片

    let image1: UIImage = {
        let size = CGSize(width: 50, height: 50)
        let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        UIColor.black.setFill()
        UIRectFill(rect)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }()
    let data = UIImagePNGRepresentation(image1)!
    let image2 = UIImage(data: data)!
    print(image1.size) // (50.0, 50.0)
    print(image2.size) // (100.0, 100.0)
请解释发生了什么以及如何解决问题。谢谢大家!

罪魁祸首:

UIGraphicsBeginImageContextWithOptions(size, false, 0)
查看的文档,查看最后一个参数比例

缩放比例因子以应用于位图。如果指定的值为0.0,则比例因子将设置为的比例因子 设备的主屏幕


如果您的设备是视网膜*2,则比例因子将为2。

阅读UIGraphicsBeginImageContextWithOptions的文档,问问自己为什么将最后一个参数设置为0。问问自己,你的设备是否是视网膜x2,你应该会得到答案。@Larme我意识到。非常感谢你!