2015-07-10 1 views
5

Я пытаюсь создать изображения программно на Python, используя Pillow library, но у меня возникают проблемы с качеством изображения текста внутри изображения.Как правильно установить DPI при сохранении изображения подушки?

Я хочу, чтобы сохранить изображение я генерировать в формате PNG, поэтому я устанавливаю DPI при сохранении в соответствии с this, но сохранить ли я с точек на дюйм = (72,72) или точек на дюйм = (600600) он визуально выглядит одинаково.

Мой код делает это заключается в следующем:

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?

ответ

6

Значения DPI являются только метаданными на компьютерных изображениях. Они дают подсказки о том, как отображать или печатать изображение.

Печать изображения 360 × 360 с разрешением 360 точек на дюйм приведет к распечатке 1 × 1 дюймов.

Упрощенный способ объяснить это: настройка DPI рекомендует уровень масштабирования изображения.

Сохранение с другими DPI не изменит содержание изображения. Если вы хотите, чтобы более крупное изображение использовало больший размер и больший шрифт.

Смежные вопросы