【问题标题】:How to generate an image from an HTML template in Python (to then print)如何从 Python 中的 HTML 模板生成图像(然后打印)
【发布时间】:2016-02-15 12:11:26
【问题描述】:

我正在尝试将 3、4、6 张或更多照片从预定义模板合并/组合成 1 个文件,然后发送到打印机(photobooth 样式)

我尝试过使用 Pillow 库,但是,它似乎是基于像素的,因此管理许多不同的模板相当麻烦。

到目前为止,我所拥有的概念证明如下:

#!/usr/bin/env python

from PIL import Image

#opens an image:
im1 = Image.open("photo_1.jpg")
im2 = Image.open("photo_2.jpg")
#creates a new empty image, RGB mode, and size 400 by 400.
new_im = Image.new('RGBA', (1300,1900), (255, 255, 255))

im1 = im1.resize((900,600), Image.ANTIALIAS)
im2 = im2.resize((900,600), Image.ANTIALIAS)

#print im1.format, im1.size
#print im2.format, im2.size

new_im.paste(im1, (100,100))
new_im.paste(im2, (100, 750))

#print new_im.format, new_im.size

try:
        new_im.save("img/new.jpeg", format="JPEG", subsampling=0, quality=80)
except IOError:
        print "Cannot create the the new image to disk"

如何在 Python 中基于带有一些嵌入图像的 HTML/CSS 模板生成这个文件(考虑生成图像)(同时保持高质量的照片打印并希望性能也不错)?

理想情况下,我将有一个带有一些占位符的 HTML 文件作为输入/参数,然后,python 命令将 X 数量的照片作为附加参数。

感谢您的帮助!

【问题讨论】:

    标签: python html photo


    【解决方案1】:

    如果我理解正确,您想生成一个包含图像的 html 页面,并从中渲染图像(如屏幕截图)。

    有很多库可以进行 html 到 X 的转换。
    有些使用浏览器进行渲染,有些使用浏览器引擎(webkit,...)并以无头方式渲染,而另一些则使用完整的 python。

    对于简单的html/css,最新的可以有最好的性能。

    【讨论】:

    • 谢谢西比尔。在 webkit 方面,我尝试使用 wkhtmltoimage 转换一些 HTML / SVG,但是,输出的质量不是很好(像素化)。你知道这是一个已知的限制还是你认为我做错了什么?奶酪
    • 好的,我查看了 webkit2png,它运行良好。我遇到的输出质量问题(我也用 wkhtmltoimage 验证了这一点)是因为我提供的整体质量很低。 webkit2png(~3 秒)的性能也比 wkhtmltoimage(~15 秒)好很多。感谢您的帮助!
    • 很高兴你找到适合你的东西。 wkhtmltoimage 具有设置输出大小和图像质量的选项,这也许可以解决您的问题。
    猜你喜欢
    • 2011-06-15
    • 2018-04-17
    • 2019-01-15
    • 1970-01-01
    • 2011-11-09
    • 2014-01-23
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多