Spaces:
Sleeping
Sleeping
| 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 |