Commit a8eeb011 authored by fisherdaddy's avatar fisherdaddy

feature: 增加字幕拼接工具

parent 564294bc
...@@ -22,6 +22,7 @@ const ImageBase64Converter = lazy(() => import('./components/ImageBase64Convert ...@@ -22,6 +22,7 @@ const ImageBase64Converter = lazy(() => import('./components/ImageBase64Convert
const QuoteCard = lazy(() => import('./components/QuoteCard')); const QuoteCard = lazy(() => import('./components/QuoteCard'));
const LatexToImage = lazy(() => import('./components/LatexToImage')); const LatexToImage = lazy(() => import('./components/LatexToImage'));
const TextDiff = lazy(() => import('./components/TextDiff')); const TextDiff = lazy(() => import('./components/TextDiff'));
const SubtitleGenerator = lazy(() => import('./components/SubtitleGenerator'));
function App() { function App() {
return ( return (
...@@ -50,6 +51,7 @@ function App() { ...@@ -50,6 +51,7 @@ function App() {
<Route path="/quote-card" element={<QuoteCard />} /> <Route path="/quote-card" element={<QuoteCard />} />
<Route path="/latex-to-image" element={<LatexToImage />} /> <Route path="/latex-to-image" element={<LatexToImage />} />
<Route path="/text-diff" element={<TextDiff />} /> <Route path="/text-diff" element={<TextDiff />} />
<Route path="/subtitle-to-image" element={<SubtitleGenerator />} />
<Route path="*" element={<NotFound />} /> <Route path="*" element={<NotFound />} />
</Routes> </Routes>
......
This diff is collapsed.
...@@ -112,5 +112,27 @@ ...@@ -112,5 +112,27 @@
"newText": "New Text", "newText": "New Text",
"originalPlaceholder": "Enter original text here...", "originalPlaceholder": "Enter original text here...",
"newPlaceholder": "Enter new text here..." "newPlaceholder": "Enter new text here..."
},
"subtitleGenerator": {
"title": "Subtitle Generator",
"description": "Quickly generate multi-line subtitle images with customizable styles",
"uploadImage": "Upload Background Image",
"removeImage": "Remove Image",
"globalSettings": "Global Settings",
"fontColor": "Font Color",
"fontSize": "Font Size",
"subtitleHeight": "Subtitle Height",
"subtitleSettings": "Subtitle Settings",
"addSubtitleLine": "Add Subtitle Line",
"preview": "Preview",
"downloadImage": "Download Image",
"presetColors": {
"classicYellow": "Classic Yellow",
"pureWhite": "Pure White",
"vividOrange": "Vivid Orange",
"neonGreen": "Neon Green",
"lightBlue": "Light Blue",
"brightPink": "Bright Pink"
}
} }
} }
\ No newline at end of file
...@@ -112,5 +112,27 @@ ...@@ -112,5 +112,27 @@
"newText": "新しいテキスト", "newText": "新しいテキスト",
"originalPlaceholder": "元のテキストを入力...", "originalPlaceholder": "元のテキストを入力...",
"newPlaceholder": "新しいテキストを入力..." "newPlaceholder": "新しいテキストを入力..."
},
"subtitleGenerator": {
"title": "字幕生成ツール",
"description": "複数行の字幕画像を素早く生成、スタイルのカスタマイズも可能",
"uploadImage": "背景画像をアップロード",
"removeImage": "画像を削除",
"globalSettings": "グローバル設定",
"fontColor": "フォントカラー",
"fontSize": "フォントサイズ",
"subtitleHeight": "字幕の高さ",
"subtitleSettings": "字幕設定",
"addSubtitleLine": "字幕行を追加",
"preview": "プレビュー",
"downloadImage": "画像をダウンロード",
"presetColors": {
"classicYellow": "クラシックイエロー",
"pureWhite": "ピュアホワイト",
"vividOrange": "ビビッドオレンジ",
"neonGreen": "ネオングリーン",
"lightBlue": "ライトブルー",
"brightPink": "ブライトピンク"
}
} }
} }
\ No newline at end of file
...@@ -113,5 +113,27 @@ ...@@ -113,5 +113,27 @@
"newText": "새 텍스트", "newText": "새 텍스트",
"originalPlaceholder": "원본 텍스트를 입력하세요...", "originalPlaceholder": "원본 텍스트를 입력하세요...",
"newPlaceholder": "새 텍스트를 입력하세요..." "newPlaceholder": "새 텍스트를 입력하세요..."
},
"subtitleGenerator": {
"title": "자막 생성기",
"description": "여러 줄의 자막 이미지를 빠르게 생성, 스타일 커스터마이징 지원",
"uploadImage": "배경 이미지 업로드",
"removeImage": "이미지 제거",
"globalSettings": "전역 설정",
"fontColor": "글자 색상",
"fontSize": "글자 크기",
"subtitleHeight": "자막 높이",
"subtitleSettings": "자막 설정",
"addSubtitleLine": "자막 줄 추가",
"preview": "미리보기",
"downloadImage": "이미지 다운로드",
"presetColors": {
"classicYellow": "클래식 옐로우",
"pureWhite": "순수 화이트",
"vividOrange": "비비드 오렌지",
"neonGreen": "네온 그린",
"lightBlue": "라이트 블루",
"brightPink": "브라이트 핑크"
}
} }
} }
\ No newline at end of file
...@@ -111,5 +111,27 @@ ...@@ -111,5 +111,27 @@
"newText": "新文本", "newText": "新文本",
"originalPlaceholder": "在此输入原始文本...", "originalPlaceholder": "在此输入原始文本...",
"newPlaceholder": "在此输入新文本..." "newPlaceholder": "在此输入新文本..."
},
"subtitleGenerator": {
"title": "字幕拼接工具",
"description": "快速生成多行字幕图片,支持自定义样式",
"uploadImage": "上传背景图片",
"removeImage": "移除图片",
"globalSettings": "全局设置",
"fontColor": "字体颜色",
"fontSize": "字体大小",
"subtitleHeight": "字幕高度",
"subtitleSettings": "字幕设置",
"addSubtitleLine": "添加字幕行",
"preview": "预览",
"downloadImage": "下载图片",
"presetColors": {
"classicYellow": "经典黄",
"pureWhite": "纯白",
"vividOrange": "活力橙",
"neonGreen": "荧光绿",
"lightBlue": "浅蓝",
"brightPink": "亮粉"
}
} }
} }
\ No newline at end of file
...@@ -7,6 +7,7 @@ const tools = [ ...@@ -7,6 +7,7 @@ const tools = [
{ id: 'handwrite', icon: '/assets/icon/handwrite.png', path: '/handwriting' }, { id: 'handwrite', icon: '/assets/icon/handwrite.png', path: '/handwriting' },
{ id: 'quoteCard', icon: '/assets/icon/quotecard.png', path: '/quote-card' }, { id: 'quoteCard', icon: '/assets/icon/quotecard.png', path: '/quote-card' },
{ id: 'markdown2image', icon: '/assets/icon/markdown2image.png', path: '/markdown-to-image' }, { id: 'markdown2image', icon: '/assets/icon/markdown2image.png', path: '/markdown-to-image' },
{ id: 'subtitleGenerator', icon: '/assets/icon/subtitle2image.png', path: '/subtitle-to-image' },
{ id: 'latex2image', icon: '/assets/icon/latex2image.png', path: '/latex-to-image' }, { id: 'latex2image', icon: '/assets/icon/latex2image.png', path: '/latex-to-image' },
{ id: 'jsonFormatter', icon: '/assets/icon/json-format.png', path: '/json-formatter' }, { id: 'jsonFormatter', icon: '/assets/icon/json-format.png', path: '/json-formatter' },
......
...@@ -8,6 +8,8 @@ const tools = [ ...@@ -8,6 +8,8 @@ const tools = [
{ id: 'quoteCard', icon: '/assets/icon/quotecard.png', path: '/quote-card' }, { id: 'quoteCard', icon: '/assets/icon/quotecard.png', path: '/quote-card' },
{ id: 'markdown2image', icon: '/assets/icon/markdown2image.png', path: '/markdown-to-image' }, { id: 'markdown2image', icon: '/assets/icon/markdown2image.png', path: '/markdown-to-image' },
{ id: 'latex2image', icon: '/assets/icon/latex2image.png', path: '/latex-to-image' }, { id: 'latex2image', icon: '/assets/icon/latex2image.png', path: '/latex-to-image' },
{ id: 'subtitleGenerator', icon: '/assets/icon/subtitle2image.png', path: '/subtitle-to-image' },
]; ];
const ImageTools = () => { const ImageTools = () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment