Проблема
При попытке сохранить холст tkinter с помощью PIL он работает должным образом, если фон холста установлен на «белый» и опция заливки для созданных строк на «черный», но при установке фона холста на «черный» и параметра заливки созданных линий на «белый» сохраненное изображение будет просто сплошным цветом (белым) . Почему это происходит?
Версии
Python 3.11.8
pillow== 10.2.0
Код
обычно сохраняет холст
import tkinter as tk
import io
from PIL import Image
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.line_start = None
self.canvas = tk.Canvas(self, width=300, height=300, bg="white")
self.canvas.bind("", lambda e: self.draw(e.x, e.y))
self.button = tk.Button(self, text="save", command=self.save)
self.canvas.pack(fill="both", expand=True)
self.canvas.focus_set()
self.button.pack(pady=10)
def draw(self, x, y):
if self.line_start:
x_origin, y_origin = self.line_start
self.canvas.create_line(x_origin, y_origin, x, y, fill="black")
self.line_start = x, y
def save(self):
ps = self.canvas.postscript(colormode="color")
img = Image.open(io.BytesIO(ps.encode("utf-8")))
img.save("working.png")
app = App()
app.mainloop()
сохраняет полностью белое изображение
import tkinter as tk
import io
from PIL import Image
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.line_start = None
self.canvas = tk.Canvas(self, width=300, height=300, bg="black")
self.canvas.bind("", lambda e: self.draw(e.x, e.y))
self.button = tk.Button(self, text="save", command=self.save)
self.canvas.pack(fill="both", expand=True)
self.canvas.focus_set()
self.button.pack(pady=10)
def draw(self, x, y):
if self.line_start:
x_origin, y_origin = self.line_start
self.canvas.create_line(x_origin, y_origin, x, y, fill="white")
self.line_start = x, y
def save(self):
ps = self.canvas.postscript(colormode="color")
img = Image.open(io.BytesIO(ps.encode("utf-8")))
img.save("white.png")
app = App()
app.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/783 ... ng-pil-res
Сохранение холста tkinter с черным фоном и белыми линейными объектами с использованием PIL приводит к полностью белому и ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Изменения CSS не влияют на сайт. Компиляция css и js приводит к белому экрану [закрыто]
Anonymous » » в форуме CSS - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-