2025-07-10 10:08:03 +08:00
|
|
|
|
import os
|
|
|
|
|
|
import sys
|
|
|
|
|
|
from PIL import Image
|
|
|
|
|
|
|
|
|
|
|
|
# 将项目根目录添加到 Python 路径中,以便导入 poster 模块
|
|
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
|
|
|
2025-07-10 17:01:39 +08:00
|
|
|
|
from poster.templates.vibrant_template import VibrantTemplate
|
|
|
|
|
|
from poster.templates.business_template import BusinessTemplate
|
2025-07-10 10:08:03 +08:00
|
|
|
|
|
|
|
|
|
|
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()
|