在Python中裁剪图像:Image.crop()与Image.transform()的比较?
我想通过选择一部分区域来裁剪一张图片,然后把这部分保存成一个新的图片文件。
根据我在PIL文档中看到的信息,我正在考虑两种方法。
对于这两种方法:
# assume I already have a PIL-opened image called original_image
# assume I have a crop_box tuple for the area to crop, e.g. (0, 0, 100, 100)
方法
直接裁剪原始图片,然后把裁剪出来的区域保存成一个新文件。看起来这样做会丢失原始图片的所有模式数据和其他信息,这些信息可能需要重新加载?
cropped_image = original_image.crop(crop_box) # process cropped version as needed
使用
image.transform()
方法,选择一个子区域。# assume I have an output size of (100, 100) cropped_image = original_image.transform(size, Image.EXTENT, crop_box) # process cropped version as needed
在速度、数据保留或其他我可能忽略的重要因素方面,哪种方法更好呢?