Поворот метки с изображением в tkinter - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь повернуть ярлык с изображением на холсте с помощью tkinter.

У меня есть три изображения, которые нужно вращать (тангаж, крен и рыскание), и они будут вращаться в соответствии с выходными сигналами датчика IMU.

import tkinter as tk
from tkinter import PhotoImage
from PIL import Image

root = tk.Tk()
root.title('Pitch/Roll/Yaw Simulator')

# pick image file
fname = "PRY_Diag_Dials.png"
bg_image = tk.PhotoImage(file=fname)

# get the width and height of the image
w = bg_image.width()
h = bg_image.height()

# size the window so the image will fill it
root.geometry("%dx%d+50+30" % (w, h))
cv = tk.Canvas(root, width=w, height=h)
cv.pack(side='top', fill='both', expand='yes')
cv.create_image(0, 0, image=bg_image, anchor='nw')


#add images

pitch = tk.PhotoImage(file="Pitch2.gif")
pitch_lbl = tk.Label(cv, image=pitch,bg="white")
pitch_lbl.image = pitch
pitch_lbl.place(x=60, y=180)

roll = tk.PhotoImage(file="Roll2.gif")
roll_lbl = tk.Label(cv, image=roll,bg="white")
roll_lbl.image = roll
roll_lbl.place(x=325, y=180)

yaw = tk.PhotoImage(file="Yaw2.gif")
yaw_lbl = tk.Label(cv, image=yaw,bg="white")
yaw_lbl.image = yaw
yaw_lbl.place(x=590, y=180)

root.mainloop()

Как повернуть ярлыки изображений через tkinter?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

tkinter не поддерживает поворот элементов холста.

Из официальной документации по tcl / tk (tkinter - это оболочка для интерпретатора tcl):

Отдельные элементы можно перемещать или масштабировать с помощью команд виджетов, описанных ниже, но их нельзя вращать.

0 голосов
/ 26 апреля 2019

Если вы хотите просто повернуть на 90, 180 или перевернуть, вы можете использовать от PIL до transpose.

Подробности см. По этой ссылке: Транспонирование .

Вот важные биты на случай, если ссылка в будущем прекратит работу:

Image.transpose (метод) Транспонирование изображения (поворот или поворот с шагом 90 градусов)

Параметры: метод- Один из:

  • PIL.Image.FLIP_LEFT_RIGHT
  • PIL.Image.FLIP_TOP_BOTTOM
  • PIL.Image.ROTATE_90
  • PIL.Image.ROTATE_180
  • PIL.Image.ROTATE_270
  • PIL.Image.TRANSPOSE

Возвраты: Возвращает перевернутую или повернутую копию этого изображения.

...