""" 图片处理工具函数 """ import base64 from typing import List from PIL import Image def get_image_list(file_paths: List[str]) -> List[Image.Image]: """从文件路径列表获取PIL图片列表用于展示""" if not file_paths: return [] images = [] for path in file_paths: try: img = Image.open(path) images.append(img) except Exception: continue return images def create_image_html(file_paths: List[str]) -> str: """创建图片展示的HTML代码""" if not file_paths: return "
No image uploaded - will generate from text only
" html_items = [] for i, path in enumerate(file_paths): try: # 将图片转换为base64编码 with open(path, "rb") as img_file: img_data = base64.b64encode(img_file.read()).decode() img_ext = path.split('.')[-1].lower() if img_ext in ['jpg', 'jpeg']: mime_type = 'image/jpeg' elif img_ext == 'png': mime_type = 'image/png' elif img_ext == 'gif': mime_type = 'image/gif' elif img_ext == 'webp': mime_type = 'image/webp' else: mime_type = 'image/jpeg' img_src = f"data:{mime_type};base64,{img_data}" html_items.append(f"""
Uploaded image {i + 1}
×
""") except: continue if not html_items: return "
No image uploaded - will generate from text only
" html_content = f"""
{''.join(html_items)}
""" return html_content