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我意识到。非常感谢你!