polyglot-ocr-jp / utils /helpers.py
xqt's picture
asdasd
e9aee4a
raw
history blame contribute delete
973 Bytes
import numpy as np
from PIL import Image
def json_ready(obj):
"""Recursively converts NumPy types to basic Python types for JSON compatibility."""
if isinstance(obj, np.ndarray):
return obj.tolist()
if isinstance(obj, list):
return [json_ready(i) for i in obj]
if isinstance(obj, tuple):
return [json_ready(i) for i in obj]
if isinstance(obj, (np.float32, np.float64)):
return float(obj)
if isinstance(obj, (np.int32, np.int64)):
return int(obj)
return obj
def process_and_save_image(pil_img, original_path, page_num):
img = pil_img.convert('RGB')
width, height = img.size
scale = 960 / max(width, height)
if scale < 1.0:
new_size = (int(width * scale), int(height * scale))
img = img.resize(new_size, Image.Resampling.LANCZOS)
chunk_path = f"{original_path}_p{page_num}.jpg"
img.save(chunk_path, "JPEG", quality=85, optimize=True)
return chunk_path