import io from pathlib import Path from PIL import Image from lama_cleaner.helper import pil_to_bytes, load_img current_dir = Path(__file__).parent.absolute().resolve() def print_exif(exif): for k, v in exif.items(): print(f"{k}: {v}") def run_test(img_p: Path): print(img_p) ext = img_p.suffix.strip(".") img_bytes = img_p.read_bytes() np_img, _, exif_infos = load_img(img_bytes, False, True) print(exif_infos) print("Original exif_infos") print_exif(exif_infos["exif"]) pil_to_bytes(Image.fromarray(np_img), ext=ext, exif_infos={}) pil_bytes = pil_to_bytes(Image.fromarray(np_img), ext=ext, exif_infos=exif_infos) res_img = Image.open(io.BytesIO(pil_bytes)) print(f"Result img info: {res_img.info}") res_exif = res_img.getexif() print_exif(res_exif) assert res_exif == exif_infos["exif"] assert exif_infos["parameters"] == res_img.info.get("parameters") def test_png(): run_test(current_dir / "image.png") run_test(current_dir / "pnginfo_test.png") def test_jpeg(): jpg_img_p = current_dir / "bunny.jpeg" run_test(jpg_img_p)