iOS 获取屏幕分辨率 以及放大模式、高清模式区别 和 获取UIImage图片的像素尺寸

章茂
2023-12-01

转自:http://blog.csdn.net/xiaoyuanzhiying/article/details/44080667


[objc]  view plain  copy
  1.     CGRect rect_screen = [[UIScreen mainScreen]bounds];  
  2.     CGSize size_screen = rect_screen.size;  
  3.       
  4.     CGFloat scale_screen = [UIScreen mainScreen].scale;  
  5.       
  6.     CGFloat width = size_screen.width*scale_screen;  
  7.     CGFloat height = size_screen.height*scale_screen;  
  8.       
  9.     NSLog(@"width:%f",width);  
  10.     NSLog(@"height:%f",height);  
  11.   
  12. 2015-03-04 15:35:06.340 reader[10697:179349] width:640.000000  
  13. 2015-03-04 15:35:06.341 reader[10697:179349] height:1136.000000  


上述情况在iphone6和iPhone6 Plus的缩放模式下,和iPhone5S获取到的分辨率是一样的。

别忘记iphone 6 6+有放大模式和,正常模式


#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)


//放大版的iphone6等于Iphone5的分辨率《求区别办法》


#define iPhone6 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) || CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size)) : NO)


#define iPhone6plus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? (CGSizeEqualToSize(CGSizeMake(1125, 2001), [[UIScreen mainScreen] currentMode].size) || CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size)) : NO)



获取照片的像素


CGFloat
 fixelW = CGImageGetWidth(image.CGImage);

CGFloat fixelH = CGImageGetHeight(image.CGImage);


 类似资料: