我正在尝试将上传的pdf文件拆分为图像,但我收到的错误就像至少有2个参数(1given)。
我知道这个错误已经被问到了,但我很困惑地修复了我的程序。
from pyPdf import PdfFileWriter, PdfFileReader
from wand.image import Image
import os
from Tkinter import *
from tkFileDialog import askopenfilename
root =Tk()
root.geometry("500x500")
class MyFrame(Frame):
def __init__(self):
Frame.__init__(self)
self.master.title("pdf")
self.master.rowconfigure(5, weight=1)
self.master.columnconfigure(5, weight=1)
self.grid(sticky=W+E+N+S)
label = Label(self,text="Upload a pdf file",font = ('Arial' , 25))
label.pack()
self.Label1=Label(self)
self.Label1.pack()
self.button = Button(self, text="Upload", command=self.load_file, fg="red", width=10).pack(side=TOP, expand=YES)
self.pack(fill=BOTH, expand=YES)
def load_file(self):
fname = askopenfilename()
self.Label1.config(text=os.path.basename(fname), fg="blue")
self.im = Image(filename=fname, resolution=200)
for i, page in enumerate(im.sequence):
with Image(page) as page_image:
page_image.alpha_channel = False
page_image.save(filename='page-%s.png' % i)
print "suceSsfully"
if __name__ == "__main__":
MyFrame().mainloop()
每当我运行此代码时,我都会收到此错误。
File "root.py", line 27, in load_file self.im = Image(filename=fname, resolution=200) TypeError: __init__() takes at least 2 arguments (1 given)
答案 0 :(得分:2)
Tkinter
拥有自己的Image
班级Tkinter.Image
。
在导入wand.image.Image
后从Tkinter导入所有内容时,您开始使用Image
中的Tkinter
类。
您应该将Tkinter
导入import Tkinter as tk
并将其与tk.class_name
一起使用,或明确使用wand.image.Image
代替Image
。