UIImage大小(以像素为单位)

时间:2016-02-03 20:26:41

标签: ios cocoa-touch uiimage

如果我只是将image.size与image.scale相乘,我可以获得UIImage的像素大小吗?这样做是否相同:

   guard let cgImage = image.CGImage else{
        return nil
    }
    let width = CGImageGetWidth(cgImage)
    let height = CGImageGetHeight(cgImage)

3 个答案:

答案 0 :(得分:9)

CGImageGetWidthCGImageGetHeight将返回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)
    }
}