is destroyed already"-6ren"> is destroyed already"-我正在尝试运行一个脚本,该脚本将遍历特定文件夹并使用 Wand 为其在该文件夹中找到的每个 .pdf 文件创建一个 .png 文件。 from wand.image import Image impo-6ren">
gpt4 book ai didi

python魔杖错误 "wand.resource.DestroyedResourceError: is destroyed already"

转载 作者:行者123 更新时间:2023-12-01 08:26:42 25 4
gpt4 key购买 nike

我正在尝试运行一个脚本,该脚本将遍历特定文件夹并使用 Wand 为其在该文件夹中找到的每个 .pdf 文件创建一个 .png 文件。

from wand.image import Image
import os

pdf_dir = r"D:\Program Files\Python\Python36-32\tom's shitty programs\Downloads"

for x in os.listdir(pdf_dir):
if x.endswith(".pdf"):
pdf_path = pdf_dir + '\\' + x
with Image(filename=pdf_path, resolution=300) as pdf:
page_index = 0
height = pdf.height
with Image(width=pdf.width, height=len(pdf.sequence)*height) as png:
for page in pdf.sequence:
png.composite(page, 0, page_index * height)
page_index += 1
png.save(filename=pdf_path[:-3] + "png")

这会返回以下错误:

回溯(最近一次调用最后一次):

文件“D:\Program Files\Python\Python36-32\tom's狗屎程序\venv\lib\site-packages\wand\image.py”,第1799行,在wand中返回self.resource

文件“D:\Program Files\Python\Python36-32\tom 的垃圾程序\venv\lib\site-packages\wand\resource.py”,第 151 行,在资源中引发 DestroyedResourceError(repr(self) + '已经被摧毁了')

wand.resource.DestroyedResourceError:已被销毁

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用最后一次):

文件“D:/Program Files/Python/Python36-32/tom's狗屎程序/wand_test.py”,第13行,包含图像(width=pdf.width, height=len(pdf.sequence)*height)作为PNG:

文件“D:\Program Files\Python\Python36-32\tom's狗屎程序\venv\lib\site-packages\wand\image.py”,第1817行,宽度返回library.MagickGetImageWidth(self.wand)

文件“D:\Program Files\Python\Python36-32\tom's狗屎程序\venv\lib\site-packages\wand\image.py”,第1801行,在wand中引发ClosedImageError(repr(self) + '已经关闭了')

wand.image.ClosedImageError:已关闭

感谢任何帮助...谢谢

最佳答案

这只是一些小事with ... as .. context manager问题和/或拼写错误。正如错误消息所述,您正在尝试在资源关闭后使用变量 (pdf)。仔细检查缩进。

with Image(filename=pdf_path, resolution=300) as pdf:
page_index = 0
height = pdf.height
with Image(width=pdf.width, height=len(pdf.sequence)*height) as png:
for page in pdf.sequence:
png.composite(page, 0, page_index * height)
page_index += 1
png.save(filename=pdf_path[:-3] + "png")

如果您使用的是 Wand 0.5.0 版本,那么您也许可以利用 wand.image.Image.concat方法。

with Image(filename=pdf_path, resolution=300) as pdf:
pdf.concat(True)
pdf.save(filename=pdf_path[:-3] + "png")

关于python魔杖错误 "wand.resource.DestroyedResourceError: <wand.image.Image: (closed)> is destroyed already",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54192110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com