feat: use utiles for read metadata

This commit is contained in:
arkohut 2024-08-21 19:16:07 +08:00
parent b3e73e4c40
commit 15972b9c0f

View File

@ -1,36 +1,16 @@
import piexif
import json
import argparse
from PIL import Image, PngImagePlugin
from .utils import get_image_metadata
def read_metadata(image_path):
try:
img = Image.open(image_path)
exif_data = img.info.get("exif")
png_info = img.info if isinstance(img, PngImagePlugin.PngImageFile) else None
metadata = get_image_metadata(image_path)
if not exif_data and not png_info:
print("No EXIF or PNG metadata found.")
if metadata is None:
print("No metadata found or unsupported file format.")
return None
metadata = {}
if exif_data:
exif_dict = piexif.load(exif_data)
metadata_json = exif_dict["0th"].get(piexif.ImageIFD.ImageDescription)
if metadata_json:
metadata = json.loads(metadata_json.decode())
else:
print("No metadata found in the ImageDescription field of EXIF.")
if png_info:
metadata_json = png_info.get("Description")
if metadata_json:
metadata = json.loads(metadata_json)
else:
print("No metadata found in the Description field of PNG.")
return metadata if metadata else None
except Exception as e: