返回 Pixelle-Video
image_book.html
根目录 / templates / 1920x1080 / image_book.html
1 <!DOCTYPE html>
2 <html lang="zh-CN">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="template:media-width" content="1024">
6 <meta name="template:media-height" content="1024">
7 <meta name="viewport" content="width=1920, height=1080">
8 <!-- Google Fonts - 手写艺术字体 -->
9 <link rel="preconnect" href="https://fonts.googleapis.com">
10 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11 <link href="https://fonts.googleapis.com/css2?family=Liu+Jian+Mao+Cao&family=Ma+Shan+Zheng&family=ZCOOL+XiaoWei&display=swap" rel="stylesheet">
12 <style>
13 * {
14 margin: 0;
15 padding: 0;
16 box-sizing: border-box;
17 }
18
19 html, body {
20 width: 1920px;
21 height: 1080px;
22 overflow: hidden;
23 }
24
25 body {
26 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
27 background-color: #1a1a1a;
28 color: #ffffff;
29 background-image: url("{{image}}");
30 background-size: cover;
31 background-position: center;
32 position: relative;
33 }
34
35 .container {
36 position: relative;
37 min-height: 100vh;
38 width: 100%;
39 }
40
41 /* Stars background */
42 .stars {
43 position: absolute;
44 inset: 0;
45 overflow: hidden;
46 }
47
48 .star {
49 position: absolute;
50 width: 4px;
51 height: 4px;
52 background-color: rgba(255, 255, 255, 0.3);
53 border-radius: 50%;
54 animation: pulse 2s ease-in-out infinite;
55 }
56
57 @keyframes pulse {
58 0%, 100% { opacity: 0.3; }
59 50% { opacity: 0.8; }
60 }
61
62 /* Title */
63 .title {
64 position: absolute;
65 top: 32px;
66 right: 32px;
67 z-index: 10;
68 font-size: 50px;
69 text-align: right;
70 /* 黑色描边 */
71 text-shadow: 0 0 0 #0e0a0a,
72 -2px -2px 0 #0e0a0a,
73 2px -2px 0 #0e0a0a,
74 -2px 2px 0 #0e0a0a,
75 2px 2px 0 #0e0a0a;
76 }
77
78 /* Main Content */
79 .main-content {
80 position: relative;
81 display: flex;
82 align-items: center;
83 justify-content: center;
84 min-height: 100vh;
85 padding: 32px;
86 }
87
88 /* Decorative blobs */
89 .blob {
90 position: absolute;
91 border-radius: 50%;
92 filter: blur(60px);
93 opacity: 0.5;
94 }
95
96 .blob-1 {
97 top: 25%;
98 left: 25%;
99 width: 128px;
100 height: 192px;
101 background-color: #4a7c8c;
102 }
103
104 .blob-2 {
105 top: 33%;
106 right: 25%;
107 width: 160px;
108 height: 224px;
109 background-color: #8b3a3a;
110 }
111
112 .blob-3 {
113 bottom: 25%;
114 left: 33%;
115 width: 144px;
116 height: 176px;
117 background-color: #6b4423;
118 opacity: 0.4;
119 }
120
121 /* Text Content */
122 .text-content {
123 position: relative;
124 z-index: 10;
125 text-align: center;
126 }
127
128 .content {
129 font-size: 70px;
130 font-weight: 900;
131 color: white;
132 letter-spacing: 0.05em;
133 font-style: italic;
134 /* 黑色描边 6px */
135 text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9),
136 -4px -4px 4px #0e0a0a,
137 4px -4px 4px #0e0a0a,
138 -4px 4px 4px #0e0a0a,
139 4px 4px 4px #0e0a0a,
140 0 8px 16px rgba(0,0,0,0.5);
141 /* 手写艺术字体 */
142 font-family: 'ZCOOL XiaoWei', cursive, serif;
143 }
144
145 /* Footer */
146 .footer {
147 display: flex;
148 align-items: center;
149 justify-content: center;
150 width: 100%;
151 padding: 25px 20px 0 20px;
152 position: absolute;
153 bottom: 32px;
154 color: #fff;
155 }
156
157 .author {
158 font-size: 50px;
159 font-weight: 500;
160 color: gray;
161 /* 手写艺术字体 */
162 font-family: 'Liu Jian Mao Cao', cursive, serif;
163 }
164 </style>
165 </head>
166 <body>
167 <div class="container">
168 <!-- Stars background -->
169 <div class="stars" id="stars"></div>
170
171 <!-- Title -->
172 <div class="title">{{title}}</div>
173
174 <!-- Main Content -->
175 <div class="main-content">
176 <!-- Decorative blobs -->
177 <div class="blob blob-1"></div>
178 <div class="blob blob-2"></div>
179 <div class="blob blob-3"></div>
180
181 <!-- Text Content -->
182 <div class="text-content">
183 <p class="content">{{text}}</p>
184 </div>
185 </div>
186 </div>
187
188 <div class="footer">
189 <div class="author">{{author=@Pixelle.AI}}</div>
190 </div>
191
192 <script>
193 // Generate stars
194 const starsContainer = document.getElementById('stars');
195 for (let i = 0; i < 50; i++) {
196 const star = document.createElement('div');
197 star.className = 'star';
198 star.style.left = Math.random() * 100 + '%';
199 star.style.top = Math.random() * 100 + '%';
200 star.style.animationDelay = Math.random() * 3 + 's';
201 star.style.animationDuration = (2 + Math.random() * 3) + 's';
202 starsContainer.appendChild(star);
203 }
204 </script>
205 </body>
206 </html>
207
207 lines HTML