裁剪图像 - Image.crop函数无效
我有一段代码用来裁剪图片
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 像素。
[编辑]
这里也有解决方案,我自己无法回答这个问题,所以在这里添加答案。
其实裁剪操作会返回一个新的图片处理器,我意识到我哪里出错了。我应该在新的处理器中进行裁剪,像下面这样
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 个回答
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")
6
你在某些语句中忘记给返回值赋值了。
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")