Эффект наложения на изображение в Python PillowPython

Программы на Python
Ответить
Гость
 Эффект наложения на изображение в Python Pillow

Сообщение Гость »


Я использую Python, чтобы получить эффект наложения на изображение при щелчке мыши. Как увеличить прозрачность цвета, чтобы основное изображение оставалось видимым. В настоящее время основное изображение скрывается под ним. Мне не удалось найти опцию управления непрозрачностью
импортировать tkinter как tk из диалога импорта файла tkinter из PIL импортировать изображение, ImageDraw, ImageTk класс ImageEditor: защита __init__(сам): self.root = tk.Tk() self.image = Нет self.grid = Нет self.colors = [(255, 0, 0), (255, 255, 0), (0, 0, 255)] # цвета RGB self.current_color_index = 0 self.display_image = Нет self.canvas = tk.Canvas(self.root) self.canvas.bind("", self.change_color) self.canvas.pack(side='left') self.load_btn = tk.Button(self.root, text='Load', команда=self.load_image) self.load_btn.pack(side='right') self.save_btn = tk.Button(self.root, text='Save', команда=self.save_image) self.save_btn.pack(side='right') self.root.mainloop() защита load_image (сам): img_path = filedialog.askopenfilename() self.image = Image.open(img_path).convert("RGB") # Преобразование в формат RGB self.grid = Image.new("RGBA", self.image.size, (0, 0, 0, 0)) # Создаём прозрачное наложенное изображение self.display_image = ImageTk.PhotoImage(self.image) self.canvas.config(ширина=self.image.width, высота=self.image.height) self.canvas.create_image(0, 0, image=self.display_image, якорь='nw') защита Change_color (я, событие): если self.image имеет значение None: возвращаться x, y = событие.x, событие.y # Определите область вокруг щелчка мыши (отрегулируйте по мере необходимости) регион = (х - 10, у - 10, х + 10, у + 10) рисовать = ImageDraw.Draw(self.grid) если self.current_color_index == 3: # Если это четвёртый клик, удалим цвет (сделаем область прозрачной) draw.rectangle(регион, fill=(0, 0, 0, 0)) еще: цвет = self.colors[self.current_color_index] draw.rectangle(регион, заливка=цвет) self.display_image = ImageTk.PhotoImage(Image.alpha_composite(self.image.convert("RGBA"), self.grid)) self.canvas.create_image(0, 0, image=self.display_image, якорь='nw') self.current_color_index = (self.current_color_index + 1) % 4 # Циклическое перебор 4 значений защита save_image (сам): если self.image имеет значение None: возвращаться file_path = filedialog.asksaveasfilename(defaultextension=".png", filetypes=[("PNG File", "*.png")], Initialfile="output") если путь_файла: Final_image = Image.alpha_composite(self.image.convert("RGBA"), self.grid) Final_image.save(путь_к файлу, "PNG") если __name__ == "__main__": приложение = Редактор изображений()
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»