import os
import datetime
from PIL import Image
def custom_crop(image_path, save_path, name):
image = Image.open(image_path)
data = image.convert("1")
print("width:", data.width)
print("height:", data.height)
left = None
for x in range(data.width):
for y in range(data.height):
if data.getpixel((x, y)) != 0:
left = x
break
else:
continue
break
print("get real left:", left)
right = None
for x in range(data.width - 1, -1, -1):
for y in range(data.height - 1, -1, -1):
if data.getpixel((x, y)) != 0:
right = x
break
else:
continue
break
print("get real right:", right)
upper = None
for x in range(data.height):
for y in range(data.width):
if data.getpixel((y, x)) != 0:
upper = x
break
else:
continue
break
print("get real upper:", upper)
lower = None
for x in range(data.height - 1, -1, -1):
for y in range(data.width - 1, -1, -1):
if data.getpixel((y, x)) != 0:
lower = x
break
else:
continue
break
print("get real lower:", lower)
image = Image.open(image_path)
print(name)
cropped_image = image.crop((left, upper, right, lower))
image_rgb = cropped_image.convert('RGB')
cropped_image_name = os.path.join(save_path, "cropped_" + name)
image_rgb.save(cropped_image_name, "JPEG")
remove_image_name = os.path.join(save_path, name)
os.remove(remove_image_name)
os.rename(cropped_image_name, remove_image_name)