首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter画布缩放导致图像模糊

Tkinter画布缩放导致图像模糊
EN

Stack Overflow用户
提问于 2021-06-18 11:42:36
回答 1查看 53关注 0票数 0

我已经实现了一个具有缩放功能的Tkinter画布对象,在另一个经过一些修改的堆栈交换帖子之后。该函数为:

代码语言:javascript
复制
  def wheel(self, event):
      ''' Zoom with mouse wheel '''
      scale = 1.0
      if self.imscale > 6 and event.delta == 120:
        return
      # Respond to Linux (event.num) or Windows (event.delta) wheel event
      if event.delta == -120:
          scale        -= .5
          self.imscale -= .5
      if event.delta == 120:
          scale        += .5
          self.imscale += .5
      # Rescale all canvas objects
      x = self.canvas.canvasx(event.x)
      y = self.canvas.canvasy(event.y)
      self.canvas.scale('all', x, y, scale, scale)
      self.show_image()
      self.canvas.configure(scrollregion=self.canvas.bbox('all'))

  def show_image(self):
      ''' Show image on the Canvas '''
      if self.imageid:
          self.canvas.delete(self.imageid)
          self.imageid = None
          self.canvas.imagetk = None  # delete previous image from the canvas
      width, height = self.image.size
      new_size = int(self.imscale * width), int(self.imscale * height)
      imagetk = ImageTk.PhotoImage(self.image.resize(new_size))
      # Use self.text object to set proper coordinates
      self.imageid = self.canvas.create_image(self.canvas.coords(self.text),
                                              anchor='nw', image=imagetk)
      self.canvas.lower(self.imageid)  # set it into background
      self.canvas.imagetk = imagetk  # keep an extra reference to prevent garbage-collection

然而,当使用这个缩放功能时,有问题的图像会变得模糊,尽管它是一个像素艺术图像,而模糊不应该出现在哪里?发生。

我环顾四周,看到提到的windll.shcore.SetProcessDpiAwareness(1)是一种可能的解决方案,但我将其添加到我的脚本中,没有任何变化。

我已经附上了模糊的,tkinter缩放的图像的图片,以及用MS paint放大的图像的“真实”图片。

任何帮助都将不胜感激!我更希望不要离开Tkinter,但如果没有其他可能的解决方案,我也可以。

EN

回答 1

Stack Overflow用户

发布于 2021-06-18 11:51:05

啊,在Abhishek Aggarwal的帮助下在评论中回答了我自己的问题!ANTIALIAS不能作为重采样滤波器,但我尝试了最近的,这完全解决了它。

谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68029024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档