UIImage 大小(以像素为单位)
Posted
技术标签:
【中文标题】UIImage 大小(以像素为单位)【英文标题】:UIImage size in pixels 【发布时间】:2016-02-03 20:26:40 【问题描述】:如果我只是将 image.size 与 image.scale 相乘,我可以获得 UIImage 的像素大小吗?是不是和这样做一样:
guard let cgImage = image.CGImage else
return nil
let width = CGImageGetWidth(cgImage)
let height = CGImageGetHeight(cgImage)
【问题讨论】:
【参考方案1】:是的。
CGImageGetWidth
和 CGImageGetHeight
将返回与 image.size * image.scale
返回相同的大小(以像素为单位)。
【讨论】:
Swift 5:CGImage.witdth
和 CGImage.height
【参考方案2】:
你可以,但它不一样与 cgImage.width x cgImage.height(你给的 CG 函数的新名称)。 cgImage 至少不知道一些可能已经旋转或翻转原始图像的 EXIF 标志。您可以在https://github.com/recurser/exif-orientation-examples 看到图像 Portrait_5.jpg 到 Portrait_8.jpg 的差异。 image.size.height * image.scale
给出 1800,但 cgImage.height
给出 1200(实际上是宽度)。
【讨论】:
那么,它是相同的方向?即,在最坏的情况下,宽度和高度是翻转的? 是的。您可以想象一些 CGImage 也不知道的 exif“缩放”标志,但我不相信存在。【参考方案3】: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)
【讨论】:
以上是关于UIImage 大小(以像素为单位)的主要内容,如果未能解决你的问题,请参考以下文章
对 UIImage 进行像素化会返回具有不同大小的 UIImage