在python

时间:2015-07-14 13:15:59

标签: python rotation python-imaging-library pillow

我正在尝试旋转填充整个画面的照片(在本例中为720x480窗口)。当我使用PIL / PILLOW中的默认Image.rotate函数时,如下面的代码片段:

                    file = Image.open("test.jpg")
                    out = file.rotate(45, expand = 1)
                    out.save(work_dir+foreground,quality=100)

我在照片1中得到了这个结果,可以在框内旋转照片。 我想要做的是旋转它,使它填满整个盒子(我不介意裁剪),如照片2有没有办法做到这一点? Default Pillow Rotation

Goal Rotation

1 个答案:

答案 0 :(得分:0)

找到方形图像的廉价解决方案:

def rotate_image_square(im, deg):
    im2 = im.rotate(deg, expand=1)
    im =  im.rotate(deg, expand=0)

    width, height = im.size
    assert (width == height)

    rads = math.radians(deg)
    new_width = width - (im2.size[0]-width)

    left  = top    = int((width - new_width)/2)
    right = bottom = int((width + new_width)/2)

    return im.crop((left, top, right, bottom))