TravelContentCreator/tests/test_poster_generation.py

98 lines
4.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import sys
from PIL import Image
# 将项目根目录添加到 Python 路径中,以便导入 poster 模块
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from poster.templates.vibrant_template import VibrantTemplate
from poster.templates.business_template import BusinessTemplate
def test_templates():
"""
测试 VibrantTemplate 和 BusinessTemplate 的海报生成功能。
"""
# 定义资源和输出目录
image_dir = '/root/autodl-tmp/TCC_RESTRUCT/resource/data/images/天津冒险湾'
output_dir = 'tests/output'
os.makedirs(output_dir, exist_ok=True)
# --- 1. 测试 VibrantTemplate ---
print("正在测试 VibrantTemplate...")
try:
vibrant_config = {
'image_path': os.path.join(image_dir, '微信图片_20250703104552.jpg'),
'content': {
"title": "探索天津冒险湾",
"slogan": "奇幻水上乐园,家庭欢乐首选!",
"price": "199",
"ticket_type": "夜场票",
"content_button": "套餐内容",
"content_items": [
"体验所有水上滑梯",
"享受家庭欢乐时光",
"品尝美味海滨小吃",
"参与精彩互动表演"
],
"remarks": [
"工作日可直接入园",
"周末请提前1天预约"
],
"tag": "#夏日特惠"
}
}
vibrant_template = VibrantTemplate()
vibrant_poster = vibrant_template.generate(
image_path=vibrant_config['image_path'],
content=vibrant_config['content']
)
vibrant_output_path = os.path.join(output_dir, 'vibrant_poster_test.png')
vibrant_poster.save(vibrant_output_path)
print(f"VibrantTemplate 测试成功,海报已保存至: {vibrant_output_path}")
except Exception as e:
print(f"VibrantTemplate 测试失败: {e}")
# --- 2. 测试 BusinessTemplate ---
print("\n正在测试 BusinessTemplate...")
try:
# 保持与原始文件一致的 "hotel_info" 结构
hotel_info = {
"name": "天津冒险湾:商业合作新机遇",
"feature": "携手共创文旅新篇章",
"slogan": "打造顶级水上文旅品牌",
"price": "洽谈",
"info_list": [
{'title': '战略合作', 'desc': '与顶级品牌联合,提升影响力。'},
{'title': '市场推广', 'desc': '覆盖全媒体渠道,精准触达目标客户。'},
{'title': '活动承办', 'desc': '承接各类大型商业活动,设施齐全。'},
{'title': '投资前景', 'desc': '高回报率的文旅投资项目,前景广阔。'}
],
"footer": [
"联系我们partner@adventurebay.com",
"地址:天津市滨海新区"
]
}
business_config = {
'top_image_path': os.path.join(image_dir, '微信图片_20250703104600.jpg'),
'bottom_image_path': os.path.join(image_dir, '微信图片_20250703104605.jpg'),
'small_image_paths': [os.path.join(image_dir, '微信图片_20250703104609.jpg')],
'content': hotel_info # 传递完整的 "hotel_info"
}
business_template = BusinessTemplate()
business_poster = business_template.generate(**business_config)
# 将 RGBA 模式转换为 RGB 模式以便保存为 JPG
if business_poster.mode == 'RGBA':
business_poster = business_poster.convert('RGB')
business_output_path = os.path.join(output_dir, 'business_poster_test.png')
business_poster.save(business_output_path)
print(f"BusinessTemplate 测试成功,海报已保存至: {business_output_path}")
except Exception as e:
print(f"BusinessTemplate 测试失败: {e}")
if __name__ == "__main__":
test_templates()