【发布时间】:2015-07-31 09:17:45
【问题描述】:
我使用此代码使用 PIL 删除图像的边框:
def RemoveBlackBorders(img):
bg = Image.new(img.mode, img.size, img.getpixel((0,0)))
diff = ImageChops.difference(img, bg)
diff = ImageChops.add(diff, diff, 2.0, -100)
bbox = diff.getbbox()
if bbox:
return img.crop(bbox)
来自here
我使用它来处理文件夹中包含的所有图像:
def CropImages():
global FOLDER
for i in range(1, len(os.listdir(FOLDER))+1):
image = FOLDER + "\\" + str(i) + ".jpg"
img = Image.open(image)
img = RemoveBlackBorders(img)
img.save(image, "JPEG")
一切正常,程序完成了他的工作。问题是如果文件夹中有一个全黑图像(被检测为“边框”),程序就会卡住给我错误:
AttributeError: 'NoneType' object has no attribute 'save'
文件夹中的所有图像都不会被裁剪,即使黑色图像是该系列的最后一张。有没有办法跳过这张图片或删除它(哪个更好)?
【问题讨论】:
标签: python border python-imaging-library crop trim