iOS关于图片点到像素转换之杂谈

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;)


无论是以什么方法生成的图片,是从磁盘上读取的,还是从其它对象中取得,或是从当前显存中获取的.

无论是什么相似的图片,是UIImage还是CGImage.

它们的显示尺寸分为2种:一种以点为单位,还有一种以像素为单位.

假设你在绘制,缩放或是截取图片时发现生成后的图片有”花屏”的现象,多半是你的图片尺寸弄错了.

假设是UIImage我们能够通过img.scale来获取事实上际像素与点得相应比率,假设是CGImageRef,我们能够通过例如以下方法获取事实上际像素大小:

CGSize size = CGSizeMake(CGImageGetWidth(imgRef),CGImageGetHeight(imgRef));

到眼下位置iPhone上的图像比率有3种@1x,@2x和@3x,详细相应什么设备也非常easy,大家能够到网上去查找.

另外须要说明的是有些函数自己帮你搞定了点到像素比率的转换,所以你自己不用劳神处理了,比方下面一个:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width/2,sz.height), NO, 0);

注意当中最后一个參数为0,表示自己主动处理实际的大小.

原文地址:https://www.cnblogs.com/yjbjingcha/p/7098371.html