Skip to main content
 首页 » 编程设计

Python Tkinter postscript 错误大小导出

2025年05月04日8lonelyxmas

我正在使用 python turtle (Tkinter) 绘制一些需要导出到 .jpg 或 .png 文件的线条。为此,我使用 python 的 turtle 方法将我的 Canvas 导出到一个 postscript 文件:

pen.getcanvas().postscript(file="grafica.ps")

pen 只是我的 turtle 的一个奇特的名字。

我得到了我的 .ps 文件,我将其转换并......惊喜!图像被剪切。

我尝试了一些修改,例如:

pen.getcanvas().postscript(file="grafica.ps", colormode='color', pagewidth=1600, pageheight=1200, width=1600, height=1200)

因为我的 turtle 的窗口是 800x600,所以我认为可能两倍的空间就足以容纳所有图像,但它仍然被缩小了...

我正在发布一些转换后的输出示例,我的 turtle 屏幕在保存时的样子,以及导出时的样子。

保存图像时的窗口: (是的, Canvas 有 slider )

它应该是什么样子:

这就是我得到的:

我想知道我应该如何调用 postscript(),知道吗?

我不想在 WxPython 或其他库上再次编写代码:(

谢谢!

请您参考如下方法:

这可能是 ImageMagick 与 EPS 文件的边界框交互时出现的问题。我在 Windows 上处理 .eps 文件的典型工作流程可能有点复杂,但它确实有效。类似的事情应该适用于 Linux。安装GhostScript (您必须确保 GhostScript 可执行文件在您的路径上),然后使用带有 -dEPSCrop 选项的命令行中的 ps2pdf 实用程序:

ps2pdf -dEPSCrop input.eps output.pdf.  

然后,使用 ImageMagick 将 PDF 转换为其他格式,例如PNG

convert output.pdf output.png 

您可以通过 ImageMagick 控制 PNG 分辨率等。就像我说的,令人费解,但它有效。