python: сконвертировать .ps в .jpg

Я сохранил нарисованное на canvas в postscript-файл с помощью встроенной функции postscript(). Вот код:

from tkinter import *
root=Tk()
Can=Canvas(bg="white",width="900",height="900")
Can.create_oval(70,70,90,90,fill="blue")
Can.postscript(file="pos.ps",colormode="color")
Can.pack()
root.mainloop()

И этот postscript-файл пытаюсь преобразовать в рисунок JPG или GIF с помощью python, используя ghostscript и библиотеку wand. Вот код преобразования

from tkinter import *
from wand.image import Image

with  Image(filename="pos.ps") as img:
    img.format= "png"
    img.save(filename="png_file.png")

Вроде преобразовал, но файл, который получилсz в результате преобразование ps в png пустой. Почему файл, который получился - пустой?


Ответы (1 шт):

Автор решения: Fox Fox

Вариант, который у меня сработал (без использования .ps):

from tkinter import *
from PIL import ImageGrab

def save():
    x = root.winfo_rootx() + canvas.winfo_x()
    y = root.winfo_rooty() + canvas.winfo_y()
    x1 = x + canvas.winfo_width()
    y1 = y + canvas.winfo_height()
    ImageGrab.grab().crop((x, y, x1, y1)).save("Image.png")

root = Tk()
canvas = Canvas(root, width=300, height=300)
canvas.create_rectangle(50, 50, 150, 150, fill="blue")  # Пример рисования на холсте
canvas.create_rectangle(100, 100, 200, 200, fill="green")  # Пример рисования на холсте
canvas.pack()

button = Button(text="Сохранить", command=save)
canvas.grid(row=0, column=0)
button.grid(row=1, column=0)

root.mainloop()
→ Ссылка