Advanced-Image-Processing-Suite / src /image_analysis.py
aaron-official's picture
Add all project files and updates
fc8bf44
Raw
History Blame Contribute Delete
1.26 kB
import logging
from PIL import Image
import numpy as np
from pathlib import Path
class ImageAnalysis:
@staticmethod
def analyze_image(img_path):
if not img_path:
return {"error": "No image provided"}
try:
img = Image.open(img_path)
analysis = {
"dimensions": f"{img.width} x {img.height}",
"format": img.format,
"mode": img.mode,
"file_size": f"{Path(img_path).stat().st_size / 1024:.1f} KB",
"has_transparency": img.mode in ("RGBA", "LA") or "transparency" in img.info,
"color_palette": "Analyzed" if img.mode == "P" else "N/A"
}
if img.mode == "RGB":
img_array = np.array(img)
analysis["average_color"] = {
"red": int(np.mean(img_array[:,:,0])),
"green": int(np.mean(img_array[:,:,1])),
"blue": int(np.mean(img_array[:,:,2]))
}
analysis["brightness"] = int(np.mean(img_array))
return analysis
except Exception as e:
logging.exception("Image analysis failed")
return {"error": f"Analysis failed: {str(e)}"}