0

だから私はpythonを使って標準のテキストファイルをイメージに変換しようとしています。これは私が使用しているスクリプトです。

from PIL import Image, ImageDraw, ImageFont
import textwrap

def draw_multiple_line_text(image, text, font, text_color, text_start_height):
    '''
    From unutbu on [python PIL draw multiline text on image](https://stackoverflow.com/a/7698300/395857)
    '''
    draw = ImageDraw.Draw(image)
    image_width, image_height = image.size
    y_text = text_start_height
    lines = textwrap.wrap(text, width=40)
    for line in lines:
        line_width, line_height = font.getsize(line)
        draw.text(((image_width - line_width) / 2, y_text), 
                  line, font=font, fill=text_color)
        y_text += line_height


def main():

    '''
    Testing draw_multiple_line_text
    '''
    #image_width
    image = Image.new('RGB', (800, 600), color = (255, 255, 255))
    fontsize = 30  # starting font size
    font = ImageFont.truetype("FreeMono.ttf", fontsize)
    #open text file in read mode
    text_file = open("text.txt", "r")
    #read whole file to a string
    text1 = text_file.read()
    text_color = (0, 0, 0)
    text_start_height = 10
    draw_multiple_line_text(image, text1, font, text_color, text_start_height)
    #draw_multiple_line_text(image, text2, font, text_color, 400)
    image.save('text.png')

if __name__ == "__main__":
    main()
    #cProfile.run('main()') # if you want to do some profiling

しかし、私は Gimp でこのタスクを実行することに慣れており、標準の行間隔と文字間隔を変更できるようにしたいという問題があります。

4

0 に答える 0