裁剪图像 - Image.crop功能无法正常工作

时间:2011-10-12 05:17:51

标签: python django python-imaging-library

我有以下代码行进行图像裁剪

im = Image.open('path/to/image.jpg')

outfile = "path/to/dest_img.jpg"
im.copy()

im.crop((0, 0, 500, 500))
im.thumbnail(size, Image.ANTIALIAS)
im.save(outfile, "JPEG")

但它似乎没有裁剪图像。我有更大的图像尺寸,例如2048 x 1536 px。

[编辑]

这也是解决方案,我自己无法回答这个问题,所以在这里添加答案。

实际上用新处理程序裁剪返回图像,我意识到我犯了错误。我应该在新的处理程序中分配裁剪,如下所示

crop_img = im.crop((0, 0, 500, 500))

完整的代码如下:

im = Image.open('path/to/image.jpg')

outfile = "path/to/dest_img.jpg"
im.copy()

crop_img = im.crop((0, 0, 500, 500))
crop_img.thumbnail(size, Image.ANTIALIAS)
crop_img.save(outfile, "JPEG")

注意,在裁剪线之后,正在使用crop_img处理程序。

2 个答案:

答案 0 :(得分:5)

您忘记在某些陈述中指定返回值。

im = Image.open('path/to/image.jpg')

outfile = "path/to/dest_img.jpg"

im = im.crop((0, 0, 500, 500))
im = im.thumbnail(size, Image.ANTIALIAS)
im.save(outfile, "JPEG")

答案 1 :(得分:2)

你当然想要这样做:

from PIL import Image
im = Image.open('sth.jpg')

outfile = "sth2.jpg"
region=im.crop((0, 0, 500, 500))
#Do some operations here if you want but on region not on im!
region.save(outfile, "JPEG")