以编程方式生成图像布局

Programmatically generate image layout

我想创建一个 python 脚本来接收一些文本和照片,按照一些规则排列和组合它们,并输出最终图像。为此,我需要一个 python 库,它可以:

为此,我已经开始使用 pycairo,虽然它确实非常有能力,但速度相当慢,而且肯定不是完成这项工作的正确工具;毕竟,它是矢量图形库。也有Pillow,不过我觉得级别太低了

是否有 python 库更适合该任务?

Opencv 是图像解决方案中最常用的库。我将为可能正在寻找这些功能的人 post 提供一些模板。

1)读取、缩放和移动图片以创建合成图像。

import cv2
cv2.imread("Image path")
cv2.resize(original image,size)

cv2. 是您可以在 OpenCV 中读取图像的方式。它以数组的形式提供给您,并带有应该解决它的调整大小功能。要创建合成图像,您也可以使用 openCV 来完成这里是我从 here.

获得的模板
import numpy as np
import cv2

A = cv2.imread(r"C:\path\to\a.png", 0)
B = cv2.imread(r"C:\path\to\b.png", 0)

#C = cv2.merge((B,A,B))
C = np.dstack((B,A,B))
cv2.imshow("imfuse",C)
cv2.waitKey(0)
  1. 插入文本和一些简单的字形(圆圈、箭头)

cv2.putText()

绝对可以解决您的问题。它以图像和文本作为参数。对于插入字形,还有一些其他功能。其中之一是:
cv2.arrowedLine()

  1. 对图像应用蒙版。

您还可以对图像应用蒙版。这不是一个班轮,所以我会留下一个很好的 link,我依赖 here.

澄清一下,@martineau 说你可以用枕头做这些,但你可能需要做一些额外的工作。对于您可能需要较小的库的部分,您可以考虑使用 OpenCVlite,但我还没有任何经验。