Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Python. Работа с изображениями jpg и png в tkinter без PIL.

Аноним Знаток (300), на голосовании 2 месяца назад
Добрый вечер. Подскажите, пожалуйста, как написать программу на Python работа с изображениями jpg и png в tkinter без PIL?
Голосование за лучший ответ
damn Просветленный (47228) 3 месяца назад
Работа с изображениями в формате JPG и PNG в Tkinter без использования библиотеки PIL (Pillow) может быть сложной, так как Tkinter изначально не поддерживает эти форматы напрямую. Однако, можно использовать сторонние библиотеки, такие как tkinterdnd2 или tkdnd.
 import tkinter as tk 
from tkinterdnd2 import DND_FILES, TkinterDnD

class ImageViewer(TkinterDnD):
def __init__(self):
super().__init__()
self.title("Image Viewer")
self.geometry("800x600")

self.canvas = tk.Canvas(self, bg="white")
self.canvas.pack(fill=tk.BOTH, expand=True)

self.canvas.drop_target_register(DND_FILES)
self.canvas.dnd_bind('<>', self.on_drop)

def on_drop(self, event):
file_path = event.data
if file_path.endswith(('.jpg', '.png')):
self.display_image(file_path)

def display_image(self, file_path):
with open(file_path, 'rb') as file:
image_data = file.read()

image = tk.PhotoImage(data=image_data)
self.canvas.create_image(0, 0, anchor=tk.NW, image=image)
self.canvas.image = image

if __name__ == "__main__":
app = ImageViewer()
app.mainloop()
tk.PhotoImage поддерживает только форматы GIF, PGM, PPM и PNG. Если нужно работать с JPG, может понадобиться конвертировать изображение в формат, поддерживаемый tk.PhotoImage, или использовать дополнительные библиотеки для декодирования JPG.
Похожие вопросы