如果我只是将image.size与image.scale相乘,我可以获得UIImage的像素大小吗?这样做是否相同:
guard let cgImage = image.CGImage else{
return nil
}
let width = CGImageGetWidth(cgImage)
let height = CGImageGetHeight(cgImage)
答案 0 :(得分:9)
是
CGImageGetWidth
和CGImageGetHeight
将返回image.size * image.scale
返回的相同大小(以像素为单位)。
答案 1 :(得分:3)
您可以,但它与cgImage.width x cgImage.height(您提供的CG函数的新名称)相同。 cgImage不知道至少一些可能旋转或翻转原始图像的EXIF标志。您可以在https://github.com/recurser/exif-orientation-examples处通过Portrait_8.jpg看到图像Portrait_5.jpg的差异。 image.size.height * image.scale
给出1800,但cgImage.height
给出1200(实际上是宽度)。
答案 2 :(得分:0)
extension UIImage {
func imageSizeInPixel() -> CGSize {
let heightInPoints = size.height
let heightInPixels = heightInPoints * scale
let widthInPoints = size.width
let widthInPixels = widthInPoints * scale
return CGSize(width: widthInPixels, height: heightInPixels)
}
}