如何隐藏Python Turtle中getscreen()生成的侵入式印章?
解决turtle保存EPS时出现侵入式印章的问题
方法1:指定导出区域(推荐)
调用postscript时,通过bbox参数指定仅导出绘图内容的边界框,直接排除窗口图标等额外元素:
import turtle tr = turtle.Turtle() tr.color("red") tr.forward(100) tr.hideturtle() ts = turtle.getscreen() canvas = ts.getcanvas() # 获取所有绘图元素的边界框,仅导出该区域 canvas.postscript(file="tile.eps", bbox=canvas.bbox(turtle.ALL))
方法2:清空窗口图标
turtle窗口默认的Python图标会被包含在导出内容中,通过清空窗口图标可以解决这个问题:
import turtle tr = turtle.Turtle() tr.color("red") tr.forward(100) tr.hideturtle() ts = turtle.getscreen() # 清空窗口图标,避免被导出 ts._rootwindow.iconbitmap('') ts.getcanvas().postscript(file="tile.eps")
两种方法都能有效去除生成的EPS文件中的侵入式印章,方法1更精准,仅导出实际绘图内容;方法2则从根源上移除可能被捕获的窗口图标元素。
内容的提问来源于stack exchange,提问作者Jonathan Webley
相关产品推荐
相关产品推荐

