Python PIL裁剪不裁剪图片

Python PIL crop doesn't crop image

我有以下裁剪图像的功能:

def crop(original_image):


    original_image = Image.open(original_image)
    original_image.crop((25, 25, 50, 50))
    #original_image.load()

    thumb_io = StringIO.StringIO()
    original_image.save(thumb_io, format='JPEG')

    thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo2.jpg', 'image/jpeg',
                                  thumb_io.len, None)


    return thumb_file

保存的图片是没有任何尺寸修改的原始图片。我尝试了负载而不是负载,但这并没有什么不同。

原始图像为 300 x 450。

图像没有通过任何裁剪编辑保存,我做错了什么?

看来我需要将裁剪 return 值提取到变量中:

img_io = StringIO.StringIO()
    original_image = Image.open(original_image)
    new_image = original_image.crop((20, 20, 125, 125))
    new_image.save(img_io, format='JPEG', quality=100)
    img_content = ContentFile(img_io.getvalue(), 'foo6.jpg')

    return img_content

您可能需要更改行

thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo2.jpg', 'image/jpeg',
                              thumb_io.len, None)

thumb_file = ContentFile(thumb_io.getvalue(), 'foo2.jpg')

我猜你打算将图像文件保存到你的数据库中

更改此行:

   original_image =  original_image.crop((25, 25, 50, 50))

因为crop函数的return值是一个矩形区域但是你没有保存!