Python:将xml文件转换为图像

问题描述 投票:0回答:1

我正在使用python脚本将xml文件转换为图像(最好是png文件)。我在网上研究中发现的不多。我正在尝试使用PIL。从StackOverflow的this post中,我可以找到以下代码:

from PIL import Image
import ImageFont, ImageDraw

image = Image.new("RGBA", (288,432), (255,255,255))
usr_font = ImageFont.truetype("resources/HelveticaNeueLight.ttf", 25)
d_usr = ImageDraw.Draw(image)
d_usr = d_usr.text((105,280), "MYTEXT",(0,0,0), font=usr_font)

但是我不太了解发生了什么。我试图用实际的xml文件内容替换“ MYTEXT”,但它不起作用。

我基本上是在寻找任何解决方案(理想情况下是使用PIL,但它可以是python的另一个模块)。我使用imgkit接近了:

import imgkit

imgkit.from_file('example_IN.xml','example_OUT.png')

返回png文件。图像的分辨率非常糟糕,并且位于一个非常大的白色矩形内。我可能会缺少一些东西。我知道您可以修改imgkit的选项,但是即使检查了文档之后,我也不知道要进行哪些修改。任何帮助将不胜感激。

非常感谢!最好的祝福。

python xml image python-imaging-library imgkit
1个回答
0
投票

我参加了pyvips

#!/usr/bin/env python3

import sys
import pyvips
from xml.sax.saxutils import escape

# load first arg as a string
txt = open(sys.argv[1], "r").read()

# pyvips allows pango markup in strings -- you can write stuff like
# text("hello <i>sailor!</i>")
# so we need to escape < > & in the text file
txt = escape(txt)

img = pyvips.Image.text(txt)

# save to second arg
img.write_to_file(sys.argv[2])

您可以这样运行它:

./txt2img.py vari.ws x.png

为此:

enter image description here

非常快-在这台普通的笔记本电脑上运行需要300毫秒。

text方法有很多选项,如果您想获得更高的分辨率,更改对齐方式等。

https://libvips.github.io/libvips/API/current/libvips-create.html#vips-text

© www.soinside.com 2019 - 2024. All rights reserved.