index.html 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>海报快速生成</title>
  7. <!-- 本地CSS文件 -->
  8. <link rel="stylesheet" href="css/main.css">
  9. </head>
  10. <body>
  11. <div class="main-navbar">
  12. <div class="navbar-brand">
  13. <a href="#" class="brand-link">
  14. <img src="../static/img/fe-48.png" alt="fehelper"/>
  15. <span class="brand-text">FeHelper</span>
  16. <span class="brand-subtitle">海报快速生成</span>
  17. </a>
  18. <div class="mod-head-actions panel-title">
  19. <a href="#" class="x-donate-link" id="donate-link"><i class="nav-icon">❤&nbsp;</i>打赏鼓励</a>
  20. <a class="x-other-tools" id="other-tools"><i class="icon-plus-circle"></i> 探索更多实用工具 <span class="tool-market-badge">工具市场</span></a>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="app-container">
  25. <main class="app-main">
  26. <div class="tool-panel">
  27. <div class="panel-tabs">
  28. <button class="panel-tab active" data-tab="templates">
  29. <i class="fas fa-images"></i>
  30. <span>模板</span>
  31. </button>
  32. <button class="panel-tab" data-tab="editor">
  33. <i class="fas fa-edit"></i>
  34. <span>编辑</span>
  35. </button>
  36. <button class="panel-tab" data-tab="advanced">
  37. <i class="fas fa-sliders-h"></i>
  38. <span>高级</span>
  39. </button>
  40. </div>
  41. <div class="panel-content">
  42. <div class="tab-content active" id="templates-tab">
  43. <div class="template-selection">
  44. <div class="template-categories">
  45. <button class="category-btn active" data-category="all">全部</button>
  46. <button class="category-btn" data-category="tech">技术</button>
  47. <button class="category-btn" data-category="product">产品</button>
  48. <button class="category-btn" data-category="operation">运营</button>
  49. <button class="category-btn" data-category="promotion">促销</button>
  50. <button class="category-btn" data-category="social">社交</button>
  51. <button class="category-btn" data-category="work">工作</button>
  52. </div>
  53. <div class="templates-container" id="templates-container"></div>
  54. </div>
  55. </div>
  56. <div class="tab-content" id="editor-tab">
  57. <div class="editor-panel">
  58. <div class="edit-form" id="edit-form">
  59. <p class="placeholder-message">请先选择一个模板</p>
  60. </div>
  61. </div>
  62. </div>
  63. <div class="tab-content" id="advanced-tab">
  64. <div class="advanced-options">
  65. <div class="option-group">
  66. <h3>布局调整</h3>
  67. <div class="form-group">
  68. <label for="poster-width">宽度比例</label>
  69. <div class="range-slider-container">
  70. <input type="range" id="poster-width" min="80" max="120" value="100" class="range-slider">
  71. <span class="range-value">100%</span>
  72. </div>
  73. </div>
  74. <div class="form-group">
  75. <label for="poster-height">高度比例</label>
  76. <div class="range-slider-container">
  77. <input type="range" id="poster-height" min="80" max="120" value="100" class="range-slider">
  78. <span class="range-value">100%</span>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="option-group">
  83. <h3>滤镜效果</h3>
  84. <div class="form-group">
  85. <label for="brightness">亮度</label>
  86. <div class="range-slider-container">
  87. <input type="range" id="brightness" min="50" max="150" value="100" class="range-slider">
  88. <span class="range-value">100%</span>
  89. </div>
  90. </div>
  91. <div class="form-group">
  92. <label for="contrast">对比度</label>
  93. <div class="range-slider-container">
  94. <input type="range" id="contrast" min="50" max="150" value="100" class="range-slider">
  95. <span class="range-value">100%</span>
  96. </div>
  97. </div>
  98. <div class="form-group">
  99. <label for="saturation">饱和度</label>
  100. <div class="range-slider-container">
  101. <input type="range" id="saturation" min="0" max="200" value="100" class="range-slider">
  102. <span class="range-value">100%</span>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="option-group">
  107. <h3>导出选项</h3>
  108. <div class="form-group">
  109. <label for="export-quality">导出质量</label>
  110. <div class="range-slider-container">
  111. <input type="range" id="export-quality" min="70" max="100" value="90" class="range-slider">
  112. <span class="range-value">90%</span>
  113. </div>
  114. </div>
  115. <div class="form-group">
  116. <label for="export-format">导出格式</label>
  117. <select id="export-format" class="form-control">
  118. <option value="png">PNG (透明背景)</option>
  119. <option value="jpeg">JPEG (高兼容性)</option>
  120. </select>
  121. </div>
  122. </div>
  123. <div class="option-group">
  124. <h3>水印设置</h3>
  125. <div class="form-group">
  126. <label>
  127. <input type="checkbox" id="enable-watermark"> 添加水印
  128. </label>
  129. </div>
  130. <div class="watermark-options" style="display: none;">
  131. <div class="form-group">
  132. <label for="watermark-text">水印文字</label>
  133. <input type="text" id="watermark-text" class="form-control" value="我的品牌">
  134. </div>
  135. <div class="form-group">
  136. <label for="watermark-position">位置</label>
  137. <select id="watermark-position" class="form-control">
  138. <option value="bottom-right">右下角</option>
  139. <option value="bottom-left">左下角</option>
  140. <option value="top-right">右上角</option>
  141. <option value="top-left">左上角</option>
  142. <option value="center">中央</option>
  143. </select>
  144. </div>
  145. <div class="form-group">
  146. <label for="watermark-opacity">透明度</label>
  147. <div class="range-slider-container">
  148. <input type="range" id="watermark-opacity" min="10" max="100" value="30" class="range-slider">
  149. <span class="range-value">30%</span>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. <div class="preview-panel">
  159. <div class="preview-header">
  160. <h2>预览</h2>
  161. <div class="zoom-controls">
  162. <button class="zoom-btn" id="zoom-out">缩小</button>
  163. <button class="zoom-btn" id="zoom-reset">重置</button>
  164. <button class="zoom-btn" id="zoom-in">放大</button>
  165. </div>
  166. </div>
  167. <div class="preview-container">
  168. <div id="poster-preview" class="poster-preview"></div>
  169. </div>
  170. <div class="action-buttons">
  171. <button id="download-btn" class="btn primary-btn" disabled>
  172. <i class="fas fa-download"></i> 下载海报
  173. </button>
  174. </div>
  175. </div>
  176. </main>
  177. </div>
  178. <!-- 引入JavaScript文件 -->
  179. <script src="js/FileSaver.min.js"></script>
  180. <script src="../chart-maker/lib/html2canvas.min.js"></script>
  181. <script type="module" src="js/index.js"></script>
  182. </body>
  183. </html>