Python用PIL将Tkinter画布postscript文件存为图像时提示找不到指定文件
错误原因
PIL处理EPS格式文件时依赖Ghostscript工具完成解码,你当前的Windows系统中没有安装Ghostscript,或是安装后没有将其可执行文件路径加入系统环境变量PATH,导致PIL调用Ghostscript进程时找不到对应程序,抛出找不到文件的错误。
解决方案
第一步:安装并配置Ghostscript
- 下载和你系统位数匹配的Windows版Ghostscript安装包,完成安装
- 找到Ghostscript安装目录下的
bin文件夹(默认路径为C:\Program Files\gs\gs<版本号>\bin),将该路径添加到系统环境变量PATH中 - 配置完成后重启你使用的IDE或命令行终端,确保环境变量生效
第二步:修正代码问题
你现有代码中save方法的format参数填写错误,不需要带点,同时建议文件名直接带后缀减少识别歧义,修改后的代码如下:
fileName = "file" map1.postscript(file=fileName+".eps", colormode='color') img = Image.open("file.eps") # 两种写法都可以,PIL会自动识别后缀对应的格式 img.save("photo.png") # 或者显式指定format # img.save("photo", format="png")
可选替代方案(无需安装Ghostscript)
如果不想额外安装工具,可以跳过生成EPS文件的步骤,直接用屏幕截图的方式获取画布内容:Windows平台下可以用PIL.ImageGrab模块直接抓取画布对应区域的截图,省去中间格式转换的步骤。
内容的提问来源于stack exchange,提问作者Hactavius
相关产品推荐
相关产品推荐

