2015-07-10 23 views
5

Sto cercando di creare immagini in modo programmatico su Python utilizzando Pillow library ma ho problemi con la qualità dell'immagine del testo all'interno dell'immagine.Come si imposta correttamente il DPI quando si salva un'immagine del cuscino?

voglio salvare l'immagine del genero in PNG, quindi sono l'impostazione del DPI durante il salvataggio in base alla this, ma se mi risparmia con dpi = (72,72) o dpi = (600.600) sembra visivamente uguale.

Il mio codice per farlo è la seguente:

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)) 

Il low_quality.png è:

Image dpi=72

Il high_quality.png è:

Image dpi=600

Come è visibile dalle immagini La qualità non è cambiata. Cosa sto facendo di sbagliato qui?

Dove si imposta il DPI in modo che l'immagine abbia realmente dpi = 600?

risposta

6

I valori DPI sono solo metadati sulle immagini del computer. Forniscono suggerimenti su come visualizzare o stampare un'immagine.

La stampa di un'immagine 360 ​​× 360 con 360 dpi comporterà una stampa di 1 × 1 pollici.

Un modo semplificato per spiegarlo: l'impostazione DPI consiglia un livello di zoom per l'immagine.

Il salvataggio con altri DPI non modifica il contenuto dell'immagine. Se vuoi un'immagine più grande usa una dimensione più grande e un carattere più grande.