Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
ai-box
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
青山
ai-box
Commits
a8eeb011
Commit
a8eeb011
authored
Nov 12, 2024
by
fisherdaddy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feature: 增加字幕拼接工具
parent
564294bc
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
559 additions
and
1 deletion
+559
-1
subtitle2image.png
public/assets/icon/subtitle2image.png
+0
-0
App.jsx
src/App.jsx
+2
-0
SubtitleGenerator.jsx
src/components/SubtitleGenerator.jsx
+465
-0
tools.json
src/locales/en/tools.json
+22
-0
tools.json
src/locales/ja/tools.json
+22
-0
tools.json
src/locales/ko/tools.json
+22
-0
tools.json
src/locales/zh/tools.json
+23
-1
Home.jsx
src/pages/Home.jsx
+1
-0
ImageTools.jsx
src/pages/ImageTools.jsx
+2
-0
No files found.
public/assets/icon/subtitle2image.png
0 → 100644
View file @
a8eeb011
219 KB
src/App.jsx
View file @
a8eeb011
...
@@ -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
>
...
...
src/components/SubtitleGenerator.jsx
0 → 100644
View file @
a8eeb011
This diff is collapsed.
Click to expand it.
src/locales/en/tools.json
View file @
a8eeb011
...
@@ -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
src/locales/ja/tools.json
View file @
a8eeb011
...
@@ -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
src/locales/ko/tools.json
View file @
a8eeb011
...
@@ -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
src/locales/zh/tools.json
View file @
a8eeb011
...
@@ -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
src/pages/Home.jsx
View file @
a8eeb011
...
@@ -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'
},
...
...
src/pages/ImageTools.jsx
View file @
a8eeb011
...
@@ -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
=
()
=>
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment