如何在 Python 中将图形列表转换为长 png
How to convert list of figures to long png in Python
我有一个 matplotlib 图形列表,我想知道是否有任何方法可以将它们连接成一个长 png 文件。我尝试过使用 MagickWand 进行试验,但似乎没有办法将数字输入为 canvas.Image
.
我也曾尝试使用 reportlab
创建 pdf,然后尝试使用 wand
进行解释,但每次我尝试在控制台中打开 wand.image.Image(filename=pdf_file_name)
时,它都会打印 None
到输出。
有没有我忽略的地方,and/or有没有更好的方法来做到这一点。最好是 PNG 文件。
提前致谢!
假设所有图形都包含在一个 PDF 中,您可以使用 wand 遍历每个页面并将它们附加到单个 PNG 图像。可以根据需要为多个图形修改此技术。
from wand.image import Image
pdf_file='/path/to/figures.pdf'
# Read figures
with Image(filename=pdf_file) as figures:
# Create blank image with the dimensions of all pages/figures
with Image(width= figures.width,
height=figures.height*len(figures.sequence)) as canvas:
top=0 # Position offset
for page in figures.sequence: # Iterate over each page in figures
canvas.composite(page, 0, top) # Composite page on to canvas
top += page.height # Adjust offset
canvas.save(filename="out.png") # Write out long png
我有一个 matplotlib 图形列表,我想知道是否有任何方法可以将它们连接成一个长 png 文件。我尝试过使用 MagickWand 进行试验,但似乎没有办法将数字输入为 canvas.Image
.
我也曾尝试使用 reportlab
创建 pdf,然后尝试使用 wand
进行解释,但每次我尝试在控制台中打开 wand.image.Image(filename=pdf_file_name)
时,它都会打印 None
到输出。
有没有我忽略的地方,and/or有没有更好的方法来做到这一点。最好是 PNG 文件。
提前致谢!
假设所有图形都包含在一个 PDF 中,您可以使用 wand 遍历每个页面并将它们附加到单个 PNG 图像。可以根据需要为多个图形修改此技术。
from wand.image import Image
pdf_file='/path/to/figures.pdf'
# Read figures
with Image(filename=pdf_file) as figures:
# Create blank image with the dimensions of all pages/figures
with Image(width= figures.width,
height=figures.height*len(figures.sequence)) as canvas:
top=0 # Position offset
for page in figures.sequence: # Iterate over each page in figures
canvas.composite(page, 0, top) # Composite page on to canvas
top += page.height # Adjust offset
canvas.save(filename="out.png") # Write out long png