3

CGImageGetWidth(workingImage.CGImage)和有什么区别workingImage.size.width吗?第一个更快或更安全?我知道在第二种情况下,我直接获得了价值。

4

2 回答 2

6

实际上它们都返回相同的结果。CGImageGetWidth(Image.CGImage)返回位图图像宽度,Image.size.width返回 UIImage 宽度。如果你问安全/快速,我认为第一个会更快,因为它来自ApplicationServices框架,第二个来自UIKit框架。希望这可以帮助你..

于 2012-10-18T12:30:26.750 回答
5

假设imagea UIImage *CGImageGetWidth(image.CGImage)返回以像素为单位的宽度,而image.size.width以屏幕坐标返回宽度,即像素宽度除以image.scale,这通常是当前显示器的比例因子(大多数 Retina 设备上为 2,iPhone 6 Plus 上为 3),尽管它可能是任意值,具体取决于图像的创建方式。

在性能方面,我希望它们都是相同的,因为它们都涉及一个objc_msgSend()image.size是获取大小image.CGImage的方法调用,是获取CGImageRef. 这些是存储属性,因此在任何情况下获取它们的成本都不高。

于 2016-02-15T12:43:23.537 回答