为什么Tkinter帆布线条呈锯齿状?

时间:2012-09-15 09:24:13

标签: python tkinter antialiasing

Tkinter.Canvas上绘制的线条不平滑。他们怎么能顺利完成?

这是我试过的:

 from Tkinter import *
 root = Tk()
 cv = Canvas(root,bg = 'white')
 rt1 = cv.create_rectangle(10,10,110,110,width = 8,tags = ('r1','r2','r3'))

 def printRect(event):
     print 'rectangle'
 def printLine(event):
     print 'line'

 cv.tag_bind('r1','<Button-1>',printRect)
 cv.tag_bind('r1','<Button-3>',printLine)
 cv.create_line(10,20,200,200,width = 5,tags = 'r1')
 cv.pack()
 root.mainloop()

这是它的样子:

tkinter output from sample code

3 个答案:

答案 0 :(得分:7)

tkinter图形没有消除锯齿,这就是对角线出现锯齿状的原因。可能会有一个特定于平台的解决方法,例如我发现的标题为Drawing Anti-Aliased Graphics Under Tkinter/Windows以提供您想要的功能。

答案 1 :(得分:1)

您可以尝试通过在第一行之前(下方)的第二行绘制一个较清晰的彩色像素大第二行来对穷人进行抗锯齿。

答案 2 :(得分:0)

  1. 绘制抗锯齿图像(使用 Image PIL、numpy、opencv 等)
  2. 在画布上显示图像。