from PIL import Image, ImageGrab, ImageFont, ImageDraw
tatras = Image.open("screen.png")
rotated = tatras.rotate(-30, resample=Image.BICUBIC, expand=True)
rotated.save('tatras_rotated.jpg', quality=90)
Поиграйтесь с параметрами rotate
(не все фильтры могут быть использованы для операции поворота изображения, BICUBIC вроде самый лучший) и параметрами save
для оптимального "размер-качество".
Возможно, если перейдёте на работу с PNG вместо JPEG, будет вообще шоколадно, но это вам надо потестировать.
Сохраняйте в png, в общем, там артефактов я не обнаружил:
rotated.save('tatras_rotated.png')