首先,pt是一个物理常量,是现实世界的度量单位,有肯定的数值,1pt = 1/72英尺
。python
而像素是一个变量,基于显示设备的参数不一样,一个像素的大小也不尽相同。而像素大小的计算方式就是DPI(dots per inch),固然,在如今这个讨论的情景下,其实DPI就是PPI(pixels per inch)。通常咱们聊显示器的DPI的时候,咱们说的就是PPI。算法
不想了解原理的话,能够直接拿一个相对通用但不正确的公式:windows
pt = px * 0.75
其实就是小学数学。已知下面的条件code
上面公式的由来正是假设DPI是96:blog
pt = px * 72 / DPI pt = px * 72 / 96 pt = px * 0.75
举例具体场景来讲,把图片的宽度换算成pt单位。整个换算逻辑是:图片
最终代码是get
from PIL import Image image = Image.open('in.png') dpi = image.info.get('dpi', 96.0) ratio = 72.0 / float(dpi) width_by_pt = image.width * ratio
参考资料:数学