如何将unicode字符和行输出到图像文件中?-蟒蛇

alv*_*vas 2 python unicode jpeg image

我想为中文字符创建jpg或任何其他图像格式文件,我该怎么做?

我的输入文本文件(在utf8中)如下所示:

??•???\t?\t???
Run Code Online (Sandbox Code Playgroud)

阅读它很简单,我可以简单地做,codecs.open('intext.txt','r','utf8).read().strip().split('\t')但我怎么能输出如下所示的图像文件: 在此输入图像描述

最终,整个jpg可能看起来像这样: 在此输入图像描述

所以确切的问题是:

  1. 如何使用python将连接线输出到图像文件中?
  2. 如何使用python将unicode字符输出到图像文件中?
  3. 如何使用python将结构化顺序的连接线和unicode输出到图像文件中?(即逐步创建第一个图像以创建像第二个图像一样的树状图像)

bee*_*jay 7

PIL(Python Imaging Library)可以使用ImageDraw模块绘制线条和unicode文本到图像.为了正确打印文本,您必须确保您有一个unicode字符串(不是utf-8编码)和一个包含您想要显示的字符的字体.

创建新图像:

image = Image.new('RGB', (xsize, ysize))
Run Code Online (Sandbox Code Playgroud)

要获取该图像绘图实例:

draw = ImageDraw.Draw(image) 
Run Code Online (Sandbox Code Playgroud)

绘制文字:

draw.text((xpos,ypos), mytext, font=ImageFont.truetype('myfont.ttf', 11))
Run Code Online (Sandbox Code Playgroud)

画一条线:

draw.line((startx,starty, endx,endy), fill=128)
Run Code Online (Sandbox Code Playgroud)

划出一道弧线:

draw.arc((startx,starty, endx,endy), startangle, endangle)
Run Code Online (Sandbox Code Playgroud)