from PIL import Image from pathlib import Path input_path = Path("input.png") # yahan apni image ka naam/path do output_path = Path("output_under_2mb.jpg") img = Image.open(input_path).convert("RGB") max_size = 2 * 1024 * 1024 # 2 MB for quality in range(95, 35, -5): img.save( output_path, format="JPEG", quality=quality, optimize=True, progressive=True ) if output_path.stat().st_size <= max_size: print(f"Done! File size: {output_path.stat().st_size / 1024 / 1024:.2f} MB") print(f"Saved as: {output_path}") break else: print("Image 2 MB se kam nahi hui. Dimensions resize karni padegi.")