CGImageGetWidth(workingImage.CGImage)和workingImage.size.width之间有什么区别吗?

时间:2012-10-18 12:11:33

标签: ios objective-c image-processing uiimage quartz-graphics

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

就性能而言,我预计它们都是相同的,因为它们都涉及一个image.scaleobjc_msgSend()是一个方法调用来获取大小,image.size是一个方法打电话来获取image.CGImage。这些是存储的属性,因此在任何情况下获取它们都不贵。