"""
图片处理工具函数
"""
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"""
×
""")
except:
continue
if not html_items:
return "No image uploaded - will generate from text only
"
html_content = f"""
{''.join(html_items)}
"""
return html_content