from PIL import Image, ImageDraw, ImageFont, ImageOps

# label = 'Hello!'
# font = ImageFont.truetype('arial.ttf', 36)
# line_height = sum(font.getmetrics())

# # Создаём пустую чёрную картинку
# fontimage = Image.new('L', (100, 300), line_height)
# # И рисуем на ней белый текст

# ImageDraw.Draw(fontimage).text((0, 0), label, fill=0, font=font)
# box = fontimage.textbbox()

# fontimage = fontimage.rotate(80, resample=Image.BICUBIC)

# fontimage.save('test.png')

image = Image.new("RGB", (600, 400), (0, 0, 0))
draw = ImageDraw.Draw(image)
xy = (30, 100)
text = "хуяка"
font = ImageFont.truetype("maler.ttf", size=50)
draw.text(xy, text, font=font, fill=(50, 50, 255))
box = draw.textbbox(xy, text, font=font)
# вырежем только надпись
image1=image.crop(box)
# повернуть кусочек с надписью
image1 = image1.rotate(25, expand=True)
# создать новое пустое изображение
image2 = Image.new("RGB", (600, 400), (0, 0, 0))
# вставить изображение с повёрнутой надписью
image2.paste(image1, (100, 100))
image2.save('im4.jpg')

