在帆布上绘制图像只显示最后的d

2024-10-03 17:26:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经建立了一个函数,在给定的画布上绘制给定的图像。 出于某种原因,它只画最后一个图像。 我的画布上都有标签。 试图改变自测imgGrayscale但它一点也不画

self.DrawOnCanvas(self.img,self.canvas1)
self.DrawOnCanvas(HistoImage,self.canvas2)

def DrawOnCanvas(self,getImg,canvas):
        imgGrayscale = Image.fromarray(array(getImg)).resize((self.w1+2,self.h1+2))
        self.imgGrayscale = ImageTk.PhotoImage(imgGrayscale)
        canvas.create_image(0,0, image=self.imgGrayscale, anchor="nw") 
        widget = Tkinter.Label(self, text='Original Image', fg='white', bg='black')
        canvas.create_window(self.w1/2, self.h1/10, window=widget)

我做错了什么?你知道吗

解决方案:

 self.draws=[]
 self.DrawOnCanvas(imgUni,self.canvas5,HistoLUT,self.canvas6,'Lambda Transformation')   

    def DrawOnCanvas(self,getImg,canvas):
        imgGrayscale = Image.fromarray(array(getImg)).resize((self.w1+2,self.h1+2))
        self.draws.append(ImageTk.PhotoImage(imgGrayscale))
        canvas.create_image(0,0, image=self.draws[-1], anchor="nw") 

Tags: 图像imageselfdef画布createh1w1