在理清分辨率、像素和尺寸大小的关系之前,需要先搞清楚一组单位换算关系:
1 英寸 ( i n c h ) = 2.54 厘米 ( c m ) \begin{equation} 1英寸\mathrm{(inch)}= 2.54厘米\mathrm{(cm)} \end{equation} 1英寸(inch)=2.54厘米(cm)
在补充一个小知识点(本文用不到):
1 寸 = 3.3333 厘米 ( c m ) \begin{equation} 1寸 = 3.3333厘米\mathrm{(cm)} \end{equation} 1寸=3.3333厘米(cm)
1. 计算公式
像素(pixel)、分辨率(DPI)、尺寸(inch)三者计算公式如下:
尺寸 ( i n c h ) = 像素( p i x e l ) 分辨率 ( D P I ) 尺寸\mathrm{(inch)}=\frac{\mathrm{像素(pixel)}}{分辨率\mathrm{(DPI)}} 尺寸(inch)=分辨率(DPI)像素(pixel)
-
尺寸(inch):就是我们实际看到的大小,也称打印尺寸。
-
分辨率(DPI):英文Dots Per Inch,即每英寸点数,是一个量度单位,用于点阵数字图像,指每一英寸长度中,取样或可显示或输出点的数目。
如:打印机输出可达300DPI的分辨率,表示打印机可以在每一平方英寸的面积中可以输出300X300=90000个输出点。
2. 案例
如下一张图片,可以查看其属性参数:
然后,用ps打开该图片,查看尺寸大小:
计算方式如下:
W = 500 96 × 2.54 = 13.23 厘米 H = 300 96 × 2.54 = 7.94 厘米 \begin{align} \mathrm{W} =& \frac{500}{96}\times2.54=13.23厘米\\ \mathrm{H} =& \frac{300}{96}\times2.54=7.94厘米 \end{align} W=H=96500×2.54=13.23厘米96300×2.54=7.94厘米
case 1:
import matplotlib.pyplot as plt
x = [97.66, 96.78, 93.32, 78.47, 80.64]
y = [0.31, 0.78, 1.63, 0.64, 1.52]
# 图片需要满足如下要求:w=8cm, h=6cm, dpi=300
plt.figure(figsize=(8/2.54, 6/2.54), dpi=300)
plt.plot(x, y)
plt.savefig(r'.\test.jpg', dpi=300, bbox_inches='tight')
注意到添加了bbox_inches='tight'
之后,尺寸会有一定的变换:
case 2:
import matplotlib.pyplot as plt
x = [97.66, 96.78, 93.32, 78.47, 80.64]
y = [0.31, 0.78, 1.63, 0.64, 1.52]
# 图片需要满足如下要求:w=8cm, h=6cm, dpi=300
plt.figure(figsize=(8/2.54, 6/2.54), dpi=300)
plt.plot(x, y)
plt.savefig(r'.\test.jpg', dpi=300)
去掉bbox_inches='tight'
之后,尺寸与预设的一样: