我正在使用Python从文本创建图像。我已经和PIL一起来回了,坦率地说,它的字体和对齐选项需要做很多工作。
我可以对Imagemagick进行子处理,但它看起来总是需要将文件写入磁盘。我想对图像创建进行子处理,只是将数据返回给Python,将所有内容保存在内存中。
我已经研究过ImageMagick的一些假设的Python包装器,但它们都已经过时了,或者没有任何记录。即使在SO上广泛搜索也没有明确指出在Python中使用ImageMagic的实际方法。所以我认为进行子处理是最好的前进方式。
答案 0 :(得分:7)
convert
作为输出文件, format:-
和其他ImageMagick命令可以将图像数据输出到stdout。您可以使用子进程模块在Python中捕获该输出。
例如:
cmd = ["convert", "test.bmp", "jpg:-"]
output_stream = subprocess.Popen(cmd, stdout=subprocess.PIPE).stdout
答案 1 :(得分:0)
将数据传输到ImageMagick会有很多工作,但有几种基于Pango的解决方案。我使用了pango和pygtk一段时间了,我很确定你可以开发一个无头的gtk或gdk应用程序来将文本呈现给pixbuf。
更简单的解决方案可能是使用python cairo bondings。
Pango的工作水平非常低,所以简单的东西可能会复杂得多,但渲染质量很难被击败,它会给你很多细致的布局控制。