Как перевернуть картинку в python
Перейти к содержимому

Как перевернуть картинку в python

  • автор:

Как повернуть картинку в tkinter

С помощью библиотеки PIL (Pillow). В tkinter встроенных средств для поворота картинок нет.

12 июн 2022 в 12:09

12 июн 2022 в 12:39

а как добавить картинку на экран с помощью PIL

12 июн 2022 в 12:50

@Codex «добавить на экран» можно с помощью tkinter. Но если перед этим нужно повернуть — это делается с помощью PIL, в памяти, а не на экране.

15 июн 2022 в 8:04

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • python
  • tkinter

Как в python tkinter повернуть фигуру или картинку?

roma2

def left(event):
global line1, line2, line3, line4, alpha, d, pos1, pos2, pos3, pos4
for i in range(4):
alpha[i] -= 1
canvas.delete(line1, line2, line3, line4)
pos1 = [100+d*math.cos(math.radians(alpha[0])),
100+d*math.sin(math.radians(alpha[0]))]
pos2 = [100+d*math.cos(math.radians(alpha[1])),
100+d*math.sin(math.radians(alpha[1]))]
pos3 = [100+d*math.cos(math.radians(alpha[2])),
100+d*math.sin(math.radians(alpha[2]))]
pos4 =[100+d*math.cos(math.radians(alpha[3])),
100+d*math.sin(math.radians(alpha[3]))]
line1 = canvas.create_line(pos1[0], pos1[1], pos2[0], pos2[1])
line2 = canvas.create_line(pos2[0], pos2[1], pos3[0], pos3[1])
line3 = canvas.create_line(pos3[0], pos3[1], pos4[0], pos4[1])
line4 = canvas.create_line(pos4[0], pos4[1], pos1[0], pos1[1])

def right(event):
global line1, line2, line3, line4, alpha, d, pos1, pos2, pos3, pos4
for i in range(4):
alpha[i] += 1
canvas.delete(line1, line2, line3, line4)
pos1 = [100+d*math.cos(math.radians(alpha[0])),
100+d*math.sin(math.radians(alpha[0]))]
pos2 = [100+d*math.cos(math.radians(alpha[1])),
100+d*math.sin(math.radians(alpha[1]))]
pos3 = [100+d*math.cos(math.radians(alpha[2])),
100+d*math.sin(math.radians(alpha[2]))]
pos4 =[100+d*math.cos(math.radians(alpha[3])),
100+d*math.sin(math.radians(alpha[3]))]
line1 = canvas.create_line(pos1[0], pos1[1], pos2[0], pos2[1])
line2 = canvas.create_line(pos2[0], pos2[1], pos3[0], pos3[1])
line3 = canvas.create_line(pos3[0], pos3[1], pos4[0], pos4[1])
line4 = canvas.create_line(pos4[0], pos4[1], pos1[0], pos1[1])

root = Tk()
canvas = Canvas(root, width=200, height=200)
canvas.pack()
alpha = [60, 120, 240, 300]
d=50
pos1 = [100+d*math.cos(math.radians(alpha[0])),
100+d*math.sin(math.radians(alpha[0]))]
pos2 = [100+d*math.cos(math.radians(alpha[1])),
100+d*math.sin(math.radians(alpha[1]))]
pos3 = [100+d*math.cos(math.radians(alpha[2])),
100+d*math.sin(math.radians(alpha[2]))]
pos4 =[100+d*math.cos(math.radians(alpha[3])),
100+d*math.sin(math.radians(alpha[3]))]

line1 = canvas.create_line(pos1[0], pos1[1], pos2[0], pos2[1])
line2 = canvas.create_line(pos2[0], pos2[1], pos3[0], pos3[1])
line3 = canvas.create_line(pos3[0], pos3[1], pos4[0], pos4[1])
line4 = canvas.create_line(pos4[0], pos4[1], pos1[0], pos1[1])

canvas.focus_set()
canvas.bind(«», right)
canvas.bind(«», left)
root.mainloop()

Как импортировать и повернуть изображение с помощью matplotlib?

Язык программирования Python

Примеры того, как импортировать и вращать изображение с помощью matplotlib.

Импорт изображения с помощью matploitlib

В matplotlib вы можете напрямую импортировать изображение следующим образом:

from matplotlib import image from matplotlib import pyplot as plt img = image.imread("fav.jpeg") print(type(img))
Code language: JavaScript (javascript)
class 'numpy.ndarray'>
Code language: HTML, XML (xml)
print(img.shape)
Code language: CSS (css)
(1280, 850, 3)

Отрисовка изображения с помощью matploitlib

Далее мы можем построить график с этим изображением с помощью imshow:

plt.imshow(img) plt.show()
Code language: CSS (css)

Поворот изображения с помощью scipy.ndimage

Чтобы повернуть изображение, одним из решений является использование scipy:

from PIL import Image from matplotlib import pyplot as plt import scipy.ndimage as ndimage data = Image.open("fav.jpg") angle = 45 # в градусах new_data = ndimage.rotate(data, angle, reshape=True) plt.imshow(new_data) plt.savefig("fav_rotated.png", bbox_inches='tight', dpi=100) plt.show()
Code language: PHP (php)

Примечание: “reshape = True” автоматически подгоняет размер изображения по ширине и высоте.

from PIL import Image from matplotlib import pyplot as plt import scipy.ndimage as ndimage data = Image.open("fav.jpg") angle = 45 # в градусах new_data = ndimage.rotate(data, angle, reshape=False) plt.imshow(new_data) plt.savefig("fav_rotated.png", bbox_inches='tight', dpi=100) plt.show()
Code language: PHP (php)

Как работает функция np.flip при работе с изображениями

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.

Suslik
Новичок

Пользователь

Сен 26, 2020 1 0 1

Я новичок в Python. Открываю встроенный справочник Python, но ничего не понятно. Хочу перевернуть изображение с помощью np.flip, но не знаю, что делать. Заранее благодарю за помощь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *