82 lines
2.7 KiB
Python
82 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
生成封面模板预览图
|
|
Generate Cover Template Previews
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
from subtitle_cover_generator_simple import SubtitleCoverGenerator
|
|
|
|
# 定义封面样式
|
|
COVER_STYLES = [
|
|
'default',
|
|
'blur-bg',
|
|
'outline',
|
|
'gradient',
|
|
'split'
|
|
]
|
|
|
|
def generate_all_cover_previews():
|
|
"""生成所有封面模板的预览图"""
|
|
|
|
# 使用项目中的demo视频
|
|
video_path = r"C:\aigcpanel-main\demo\demo-1.mp4"
|
|
|
|
if not os.path.exists(video_path):
|
|
print(f"Error: Video file not found: {video_path}", file=sys.stderr)
|
|
return False
|
|
|
|
# 创建预览图存储目录
|
|
preview_dir = r"C:\aigcpanel-main\public\cover-previews"
|
|
os.makedirs(preview_dir, exist_ok=True)
|
|
|
|
print(f"Generating cover previews from: {video_path}", file=sys.stderr)
|
|
print(f"Output directory: {preview_dir}", file=sys.stderr)
|
|
|
|
# 为每个样式生成封面预览
|
|
for style in COVER_STYLES:
|
|
try:
|
|
print(f"\nGenerating preview for style: {style}", file=sys.stderr)
|
|
|
|
# 创建配置
|
|
config = {
|
|
'videoPath': video_path,
|
|
'scriptText': '欢迎来到我们的精彩世界!这里有无限的可能性和创意。让我们一起探索未知的领域,发现更多的美好事物。', # 使用更长的演示文本
|
|
'subtitleStyle': 'default',
|
|
'coverStyle': style,
|
|
'outputDir': preview_dir,
|
|
'coverOnly': True # 仅生成封面
|
|
}
|
|
|
|
# 创建生成器并生成封面
|
|
generator = SubtitleCoverGenerator(config)
|
|
cover_path = generator.generate_cover()
|
|
|
|
# 重命名为样式名称
|
|
style_preview_path = os.path.join(preview_dir, f'cover-preview-{style}.png')
|
|
if os.path.exists(cover_path):
|
|
# 如果目标文件已存在,先删除
|
|
if os.path.exists(style_preview_path):
|
|
os.remove(style_preview_path)
|
|
os.rename(cover_path, style_preview_path)
|
|
print(f"✓ Generated: {style_preview_path}", file=sys.stderr)
|
|
else:
|
|
print(f"✗ Failed to generate: {style}", file=sys.stderr)
|
|
|
|
except Exception as e:
|
|
print(f"✗ Error generating {style}: {e}", file=sys.stderr)
|
|
continue
|
|
|
|
print("\n" + "=" * 60, file=sys.stderr)
|
|
print("Cover preview generation completed!", file=sys.stderr)
|
|
print(f"Preview images saved to: {preview_dir}", file=sys.stderr)
|
|
print("=" * 60, file=sys.stderr)
|
|
|
|
return True
|
|
|
|
if __name__ == '__main__':
|
|
success = generate_all_cover_previews()
|
|
sys.exit(0 if success else 1)
|