INNER CODE UNIT · Python
trim_white
gokayfem/awesome-vlm-architectures · scripts/extract_architecture_figures.py:117
def trim_white(image: Image.Image, padding: int = 18) -> Image.Image:
rgb = image.convert("RGB")
background = Image.new("RGB", rgb.size, "white")
difference = ImageChops.difference(rgb, background).convert("L")
difference = difference.point(lambda value: 255 if value > 12 else 0)
bbox = difference.getbbox()
if not bbox:
return rgb
left = max(0, bbox[0] - padding)
top = max(0, bbox[1] - padding)
right = min(rgb.width, bbox[2] + padding)
bottom = min(rgb.height, bbox[3] + padding)
return rgb.crop((left, top, right, bottom))
def extract(record: dict[str, object]) -> Path:
arxiv_id = str(record["arxiv_id"])
page_number = int(record["pdf_page"])