绘制文本时python Pillow图像的隐含像素密度是多少?

问题描述 投票:0回答:1

我试图在python中使用Pillow找到一些文本的大小。据我了解,点的字体大小对应于目标显示器或表面上的实际物理英寸,每英寸72点。当我使用Pillow的textsize方法时,我可以找到以给定字体大小(以磅为单位)渲染的某些文本的像素大小,但不知道如何返回以英寸为单位的坐标系,因为我没有拥有(并且不能设置)图像的像素密度:

from PIL import Image, ImageFont, ImageDraw
image = Image.new('RGBA', (400, 300), (255, 255, 255))
font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 16)
image.info['dpi'] = 100
print( ImageDraw.Draw(image).textsize('Loreum ipsum', font=font) )
image.info['dpi'] = 1000
print( ImageDraw.Draw(image).textsize('Loreum ipsum', font=font) )

将打印

(101, 18)
(101, 18)

如何获得给定文本的大小?

python python-3.x image python-imaging-library typography
1个回答
0
投票

图像没有“隐式”像素密度,它们只有不同数量的像素。以像素为单位测量的任何尺寸将取决于显示设备的DPI或每英寸点数。

例如,在100 DPI设备上,12个像素看起来是12/100或0.12英寸长。要将英寸转换为点数,请将它们乘以72.所以12像素→0.12英寸* 72→8.84点。

© www.soinside.com 2019 - 2024. All rights reserved.