CGImageGetWidth(workingImage.CGImage)
和workingImage.size.width
之间有什么区别吗?第一个更快还是更安全?我知道在第二种情况下,我直接获得了值。
答案 0 :(得分:5)
实际上他们两个都返回相同的结果。 CGImageGetWidth(Image.CGImage)
返回位图图像宽度,Image.size.width
返回UIImage宽度。如果你问安全/快速,我认为第一个会更快,因为它来自 ApplicationServices 框架,第二个来自 UIKit 框架。希望这可以帮助你..
答案 1 :(得分:3)
假设image
是UIImage *
,CGImageGetWidth(image.CGImage)
返回宽度(以像素为单位),而image.size.width
则返回屏幕坐标中的宽度,即像素宽度除以{{ 1}},这通常是当前显示的比例因子(在大多数Retina设备上为2,在iPhone 6 Plus上为3),尽管它可以是任意值,具体取决于图像的创建方式。
就性能而言,我预计它们都是相同的,因为它们都涉及一个image.scale
:objc_msgSend()
是一个方法调用来获取大小,image.size
是一个方法打电话来获取image.CGImage
。这些是存储的属性,因此在任何情况下获取它们都不贵。