保存枕头图像时如何正确设置DPI?

时间:2015-07-10 22:40:44

标签: python image python-imaging-library dpi pillow

我正在尝试使用Pillow library以编程方式在Python上创建图像,但我对图像内部文本的图像质量有疑问。

我想将我生成的图像保存到PNG,所以我在根据this保存时设置DPI,但是我是否用 dpi =(72,72)或 dpi =(600,600)它在视觉上看起来是一样的。

我的代码如下:

from PIL import Image, ImageDraw, ImageFont

def generate_empty_canvas(width, height, color='white'):
    size = (width, height)
    return Image.new('RGB', size, color=color)

def draw_text(text, canvas):
    font = ImageFont.truetype('Verdana.ttf', 10)
    draw = ImageDraw.Draw(canvas)
    if '\n' not in text:
        draw.text((0, 0), text, font=font, fill='black')
    else:
        draw.multiline_text((0, 0), text, font=font, fill='black')

def create_sample():
    text = 'aaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbb\nccccccccccccccccccccc'
    canvas = generate_empty_canvas(200, 50)
    draw_text(text, canvas)
    canvas.save('low_quality.png', dpi=(72, 72))
    canvas.save('high_quality.png', dpi=(600, 600))

low_quality.png是:

Image dpi=72

high_quality.png是:

Image dpi=600

由于图像可见,质量没有变化。 我在这里做错了什么?

我在哪里设置DPI以使图像真的有dpi = 600?

1 个答案:

答案 0 :(得分:13)

DPI值仅是计算机图像上的元数据。它们提供了有关如何显示或打印图像的提示。

以360 dpi打印360×360图像将导致1×1英寸的打印输出。

解释它的简化方法:DPI设置建议图像的缩放级别。

使用其他DPI保存不会更改图像的内容。如果您想要更大的图像,请创建更大的画布并使用更大的字体。