2015-07-10 17 views
5

Pillow library'u kullanarak Python'da programatik olarak resim oluşturmaya çalışıyorum ancak resim içindeki metnin görüntü kalitesiyle ilgili sorun yaşıyorum.Yastık görüntüsünü kaydederken DPI'yi düzgün olarak nasıl ayarlayabilirim?

ben PNG oluşturmak Resmi kaydetmek istiyorum, bu yüzden this göre kaydederken ben DPI ayarlıyorum ama dpi ile tasarruf edip = (72,72) veya dpi = (600600) görsel olarak aynı görünüyor.

takip ediyor bunu yapmak için Kodum:

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 geçerli:

Image dpi=72

high_quality.png geçerli:

Image dpi=600

Görüntüler tarafından görüldüğü gibi e kalite değişmedi. Burada yanlış olan ne yapıyorum?

DPI'yi görüntünün gerçekten dpi = 600 olacak şekilde nerede ayarlayabilirim?

cevap

6

DPI değerleri yalnızca bilgisayar görüntülerinde meta verilerdir. Görüntüyü nasıl görüntüleyeceğine veya yazdıracağınıza dair ipuçları verir.

360 dpi ile 360 ​​× 360 boyutunda bir görüntü basılması 1 × 1 inç çıktısına neden olur.

Bunu açıklamanın basit bir yolu: DPI ayarı, görüntü için bir yakınlaştırma seviyesi önerir.

Diğer DPI'lerle kaydetmek, görüntünün içeriğini değiştirmez. Daha büyük bir görüntü istiyorsanız, daha büyük bir boyut ve daha büyük bir yazı tipi kullanın.

İlgili konular