func thumbImage(image: UIImage) -> UIImage {
let cgSize: CGSize = CGSize(width: 100, height: 100)
let thumb = UIGraphicsImageRenderer(size: cgSize)
return thumb.image { _ in
image.draw(in: CGRect(origin: .zero, size: cgSize))
}
}最后的图像是300x300。我希望,不管iPhone屏幕分辨率如何,图像应该是100x100 (当然,这是一个方形图像)。
如何修改此代码以实现此结果?
(我对实现这一目标的其他方法持开放态度)
发布于 2021-03-12 16:06:56
func thumbImage(image: UIImage, pxWidth: Int, pxHeight:Int ) -> UIImage {
let cgSize: CGSize = CGSize(width: pxWidth, height: pxHeight)
let rect = CGRect(x: 0, y: 0, width: pxWidth, height: pxHeight)
UIGraphicsBeginImageContextWithOptions(cgSize, false, 1.0)
image.draw(in: rect)
let thumb = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let compressedThumb = thumb!.jpegData(compressionQuality: 0.70)
return UIImage(data: compressedThumb!)!
}这一选择与UIGraphicsBeginImageContextWithOptions一起工作,并保持代码与初始代码一样短。(我还添加了一些压缩和转换代码)。
https://stackoverflow.com/questions/66602675
复制相似问题