@jjlmoya/utils-games-development 1.55.0 → 1.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/entries.ts +5 -1
- package/src/index.ts +1 -0
- package/src/tests/contrast_legibility.test.ts +56 -10
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/runtime_registry.test.ts +27 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/localizationSanitizer/localization-sanitizer.css +4 -2
- package/src/tool/pixelArtPaletteSwapper/app-client.ts +234 -0
- package/src/tool/pixelArtPaletteSwapper/bibliography.astro +6 -0
- package/src/tool/pixelArtPaletteSwapper/bibliography.ts +16 -0
- package/src/tool/pixelArtPaletteSwapper/component.astro +153 -0
- package/src/tool/pixelArtPaletteSwapper/entry.ts +28 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/de.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/en.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/es.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/fr.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/id.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/it.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/ja.ts +225 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/ko.ts +225 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/nl.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/pl.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/pt.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/ru.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/sv.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/tr.ts +233 -0
- package/src/tool/pixelArtPaletteSwapper/i18n/zh.ts +225 -0
- package/src/tool/pixelArtPaletteSwapper/index.ts +12 -0
- package/src/tool/pixelArtPaletteSwapper/logic.test.ts +43 -0
- package/src/tool/pixelArtPaletteSwapper/logic.ts +201 -0
- package/src/tool/pixelArtPaletteSwapper/pixel-art-palette-swapper.css +728 -0
- package/src/tool/pixelArtPaletteSwapper/seo.astro +15 -0
- package/src/tool/pixelArtPaletteSwapper/ui.ts +35 -0
- package/src/tool/retroSfxGenerator/client.ts +9 -2
- package/src/tool/retroSfxGenerator/logic.test.ts +21 -0
- package/src/tool/retroSfxGenerator/logic.ts +1 -1
- package/src/tool/retroSfxGenerator/retro-sfx-generator.css +10 -4
- package/src/tools.ts +2 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { PixelArtPaletteSwapperUI } from '../ui';
|
|
3
|
+
|
|
4
|
+
export const content: ToolLocaleContent<PixelArtPaletteSwapperUI> = {
|
|
5
|
+
slug: 'pixel-art-palette-swapper',
|
|
6
|
+
title: 'ドット絵パレットスワッパー',
|
|
7
|
+
description: 'スプライトやスプライトシートをクラシックなゲーム機のパレットやカスタムカラーにブラウザ上で変換。',
|
|
8
|
+
ui: {
|
|
9
|
+
uploadTitle: 'スプライトをドラッグ&ドロップ',
|
|
10
|
+
uploadHint: 'PNG、JPEG、WebPをローカル環境で処理します',
|
|
11
|
+
chooseImage: '画像を選択',
|
|
12
|
+
replaceImage: '画像を差し替え',
|
|
13
|
+
paletteTitle: 'パレットを選択',
|
|
14
|
+
gameBoyPalette: 'Game Boy',
|
|
15
|
+
nesPalette: 'NES風',
|
|
16
|
+
pico8Palette: 'PICO-8',
|
|
17
|
+
commodore64Palette: 'Commodore 64',
|
|
18
|
+
dawnBringerPalette: 'DawnBringer 16',
|
|
19
|
+
customPalette: 'カスタムカラー',
|
|
20
|
+
customPaletteHint: 'Hexカラーコードをカンマ、スペース、改行で区切って入力。',
|
|
21
|
+
applyCustomPalette: 'パレットを適用',
|
|
22
|
+
resetCustomPalette: 'リセット',
|
|
23
|
+
sourcePreview: 'オリジナル',
|
|
24
|
+
resultPreview: '変換結果',
|
|
25
|
+
waitingForImage: '画像を選択してください',
|
|
26
|
+
uploadToPreview: '画像をアップロードするとプレビューが表示されます',
|
|
27
|
+
resultEmpty: '元の画像と減色後の画像が左右に並んで表示されます。',
|
|
28
|
+
downloadPng: 'PNGをダウンロード',
|
|
29
|
+
downloadDisabled: '画像をアップロードしてエクスポートを有効化。',
|
|
30
|
+
colorCount: '元の色数',
|
|
31
|
+
mappedCount: '使用色数',
|
|
32
|
+
imageSize: '画像サイズ',
|
|
33
|
+
paletteCount: 'パレット色数',
|
|
34
|
+
preserveAlpha: '透過を維持',
|
|
35
|
+
zoomLabel: 'ズーム',
|
|
36
|
+
processing: 'ピクセルを減色中',
|
|
37
|
+
invalidPalette: '有効なHexカラーコードを入力してください',
|
|
38
|
+
invalidImage: 'PNG、JPEG、WebP形式の画像を選択してください',
|
|
39
|
+
readyStatus: '準備完了',
|
|
40
|
+
dropActive: 'ドロップして読み込み',
|
|
41
|
+
mappedSummary: '{source}色の元画像を{mapped}色のパレットに変換しました',
|
|
42
|
+
},
|
|
43
|
+
seo: [
|
|
44
|
+
{
|
|
45
|
+
type: 'title',
|
|
46
|
+
level: 2,
|
|
47
|
+
text: 'ドット絵をレトロゲーム機のカラーパレットに即座に変換',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'paragraph',
|
|
51
|
+
html: '限られた色数はドット絵にレトロゲーム独特の魅力を与えます。Game Boy、NES、PICO-8などのパレットに一括変換できます。',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'title',
|
|
55
|
+
level: 2,
|
|
56
|
+
text: '減色処理の仕組み',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'paragraph',
|
|
60
|
+
html: '各ピクセルのRGB値を解析し、選択されたパレットの中で最も近い色に置き換えます。透明度も保持されます。',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'comparative',
|
|
64
|
+
columns: 2,
|
|
65
|
+
items: [
|
|
66
|
+
{
|
|
67
|
+
title: 'パレット制限',
|
|
68
|
+
description: '元の色を最も近いパレット色へ変換。',
|
|
69
|
+
points: [
|
|
70
|
+
'スプライトやタイルセットに最適',
|
|
71
|
+
'元の解像度とピクセル位置を維持',
|
|
72
|
+
'使用色数を簡単に管理',
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
title: 'パレットスワップ',
|
|
77
|
+
description: '色違いバージョンを簡単に作成。',
|
|
78
|
+
points: [
|
|
79
|
+
'2Pカラーや属性違いのキャラ作成に',
|
|
80
|
+
'独自のHexカラーリストにも対応',
|
|
81
|
+
'即座にPNGとして書き出し可能',
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'title',
|
|
88
|
+
level: 2,
|
|
89
|
+
text: 'レトロパレット比較',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
type: 'table',
|
|
93
|
+
headers: ['パレット', '色数', '特徴', '注意点'],
|
|
94
|
+
rows: [
|
|
95
|
+
['Game Boy', '4', 'モノクロ携帯ゲーム機風', '明暗差が少ないとディテールが潰れやすい'],
|
|
96
|
+
['NES風', '16', 'アーケード風の鮮やかな発色', '彩度の高い色の扱いに注意'],
|
|
97
|
+
['PICO-8', '16', '現代的なポピュラーカラー', '鮮やかな色のコントラストを考慮'],
|
|
98
|
+
['Commodore 64', '16', 'シックなレトロPCテイスト', '明確なシルエット作りが効果的'],
|
|
99
|
+
['DawnBringer 16', '16', '汎用性の高い人気パレット', '光源の意識が必要'],
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'title',
|
|
104
|
+
level: 2,
|
|
105
|
+
text: 'スプライトシートの作業フロー',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: '画像を読み込み、ズーム機能を使って拡大しながら細部の潰れがないか確認してください。',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'tip',
|
|
113
|
+
title: '色数えらびのコツ',
|
|
114
|
+
html: '最初は4〜16色程度に抑えると統一感が出やすくなります。',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
level: 2,
|
|
119
|
+
text: '書き出し前のチェックリスト',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'diagnostic',
|
|
123
|
+
variant: 'info',
|
|
124
|
+
title: 'ゲームへの組み込み前に',
|
|
125
|
+
html: '原寸サイズで表示を確認し、透過部分に余計なピクセルが入っていないかチェックしましょう。',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'glossary',
|
|
129
|
+
items: [
|
|
130
|
+
{
|
|
131
|
+
term: 'カラー減色(Quantization)',
|
|
132
|
+
definition: '多くの色で描かれた画像を限られた色数に変換する処理。',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
term: 'パレットランプ(Ramp)',
|
|
136
|
+
definition: '陰影をつけるために段階的に並べられた同系色の系列。',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
term: 'インデックスカラー',
|
|
140
|
+
definition: '各ピクセルがカラーテーブルの番号を参照する形式。',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
faq: [
|
|
146
|
+
{
|
|
147
|
+
question: '画像はサーバーに送信されますか?',
|
|
148
|
+
answer: 'いいえ。すべての処理はお使いのブラウザ上でローカルに行われます。',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
question: '自作のパレットを使用できますか?',
|
|
152
|
+
answer: 'はい。Hexコードを入力して「パレットを適用」をクリックしてください。',
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
howTo: [
|
|
156
|
+
{
|
|
157
|
+
name: '画像をロード',
|
|
158
|
+
text: 'PNG、JPEG、WebP画像をドラッグ&ドロップします。',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'パレットを選択',
|
|
162
|
+
text: 'プリセットを選択するか、カスタムコードを入力します。',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'エクスポート',
|
|
166
|
+
text: '変換後のPNGファイルをダウンロードします。',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'ドット絵パレットスワッパー',
|
|
174
|
+
applicationCategory: 'DesignApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
'@context': 'https://schema.org',
|
|
180
|
+
'@type': 'FAQPage',
|
|
181
|
+
mainEntity: [
|
|
182
|
+
{
|
|
183
|
+
'@type': 'Question',
|
|
184
|
+
name: '画像はサーバーに送信されますか?',
|
|
185
|
+
acceptedAnswer: {
|
|
186
|
+
'@type': 'Answer',
|
|
187
|
+
text: 'いいえ。すべての処理はお使いのブラウザ上でローカルに行われます。',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
'@type': 'Question',
|
|
192
|
+
name: '自作のパレットを使用できますか?',
|
|
193
|
+
acceptedAnswer: {
|
|
194
|
+
'@type': 'Answer',
|
|
195
|
+
text: 'はい。Hexコードを入力して「パレットを適用」をクリックしてください。',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
'@context': 'https://schema.org',
|
|
202
|
+
'@type': 'HowTo',
|
|
203
|
+
name: 'ドット絵をレトロパレットに変換する方法',
|
|
204
|
+
step: [
|
|
205
|
+
{ '@type': 'HowToStep', name: '画像をロード', text: '画像をドラッグ&ドロップします。' },
|
|
206
|
+
{ '@type': 'HowToStep', name: 'パレットを選択', text: 'プリセットを選択するかカスタムコードを入力します。' },
|
|
207
|
+
{ '@type': 'HowToStep', name: 'エクスポート', text: '変換後のPNGファイルをダウンロードします。' },
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
bibliography: [
|
|
212
|
+
{
|
|
213
|
+
name: 'MDN Canvas API',
|
|
214
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: 'Lospec Palette List',
|
|
218
|
+
url: 'https://lospec.com/palette-list',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'W3C Portable Network Graphics Specification',
|
|
222
|
+
url: 'https://www.w3.org/TR/png-3/',
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
};
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { PixelArtPaletteSwapperUI } from '../ui';
|
|
3
|
+
|
|
4
|
+
export const content: ToolLocaleContent<PixelArtPaletteSwapperUI> = {
|
|
5
|
+
slug: 'pixel-art-palette-swapper',
|
|
6
|
+
title: '도트 그래픽 팔레트 스왑 도구',
|
|
7
|
+
description: '스프라이트와 스프라이트 시트의 색상을 레트로 콘솔 팔레트나 사용자 지정 Hex 색상으로 브라우저에서 직접 변경하세요.',
|
|
8
|
+
ui: {
|
|
9
|
+
uploadTitle: '스프라이트 파일 드래그 앤 드롭',
|
|
10
|
+
uploadHint: 'PNG, JPEG, WebP 파일이 브라우저에서 안전하게 처리됩니다',
|
|
11
|
+
chooseImage: '이미지 선택',
|
|
12
|
+
replaceImage: '이미지 교체',
|
|
13
|
+
paletteTitle: '팔레트 선택',
|
|
14
|
+
gameBoyPalette: 'Game Boy',
|
|
15
|
+
nesPalette: 'NES 스타일',
|
|
16
|
+
pico8Palette: 'PICO-8',
|
|
17
|
+
commodore64Palette: 'Commodore 64',
|
|
18
|
+
dawnBringerPalette: 'DawnBringer 16',
|
|
19
|
+
customPalette: '사용자 지정 색상',
|
|
20
|
+
customPaletteHint: 'Hex 색상 코드를 쉼표, 공백 또는 줄바꿈으로 구분하여 입력하세요.',
|
|
21
|
+
applyCustomPalette: '팔레트 적용',
|
|
22
|
+
resetCustomPalette: '초기화',
|
|
23
|
+
sourcePreview: '원본',
|
|
24
|
+
resultPreview: '변환 결과',
|
|
25
|
+
waitingForImage: '이미지 대기 중',
|
|
26
|
+
uploadToPreview: '이미지를 업로드하면 미리보기가 표시됩니다',
|
|
27
|
+
resultEmpty: '원본과 색상이 변환된 이미지가 나란히 표시됩니다.',
|
|
28
|
+
downloadPng: 'PNG 다운로드',
|
|
29
|
+
downloadDisabled: '내보내기를 활성화하려면 이미지를 업로드하세요.',
|
|
30
|
+
colorCount: '원본 색상 수',
|
|
31
|
+
mappedCount: '사용된 색상 수',
|
|
32
|
+
imageSize: '이미지 크기',
|
|
33
|
+
paletteCount: '팔레트 색상 수',
|
|
34
|
+
preserveAlpha: '투명도 유지',
|
|
35
|
+
zoomLabel: '확대',
|
|
36
|
+
processing: '픽셀 색상 변환 중',
|
|
37
|
+
invalidPalette: '올바른 Hex 색상 코드를 1개 이상 입력하세요',
|
|
38
|
+
invalidImage: 'PNG, JPEG 또는 WebP 이미지를 선택하세요',
|
|
39
|
+
readyStatus: '준비 완료',
|
|
40
|
+
dropActive: '파일을 놓아 업로드',
|
|
41
|
+
mappedSummary: '{source}개의 원본 색상을 {mapped}개의 팔레트 색상으로 변환했습니다',
|
|
42
|
+
},
|
|
43
|
+
seo: [
|
|
44
|
+
{
|
|
45
|
+
type: 'title',
|
|
46
|
+
level: 2,
|
|
47
|
+
text: '도트 그래픽을 레트로 감성의 팔레트로 즉시 변환',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'paragraph',
|
|
51
|
+
html: '제한된 색상 수 팔레트는 도트 그래픽에 독특한 레트로 분위기를 더해줍니다. Game Boy, NES, PICO-8 팔레트로 손쉽게 변환해 보세요.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'title',
|
|
55
|
+
level: 2,
|
|
56
|
+
text: '색상 변환 알고리즘 작동 방식',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'paragraph',
|
|
60
|
+
html: '각 픽셀의 RGB 값을 분석하여 선택한 팔레트에서 가장 가까운 색상으로 대체하며 투명도 채널은 그대로 유지됩니다.',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'comparative',
|
|
64
|
+
columns: 2,
|
|
65
|
+
items: [
|
|
66
|
+
{
|
|
67
|
+
title: '팔레트 제한',
|
|
68
|
+
description: '원본 색상을 가장 가까운 팔레트 색으로 변경.',
|
|
69
|
+
points: [
|
|
70
|
+
'스프라이트 및 타일셋 작업에 최적화',
|
|
71
|
+
'원본 해상도와 픽셀 위치 유지',
|
|
72
|
+
'색상 수 관리가 용이함',
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
title: '팔레트 스왑',
|
|
77
|
+
description: '동일 디자인의 다양한 색상 버전 생성.',
|
|
78
|
+
points: [
|
|
79
|
+
'2P 컬러 및 속성 변경 캐릭터 제작에 유용',
|
|
80
|
+
'사용자 지정 Hex 코드 지원',
|
|
81
|
+
'즉시 PNG 파일로 내보내기 가능',
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'title',
|
|
88
|
+
level: 2,
|
|
89
|
+
text: '레트로 콘솔 팔레트 비교',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
type: 'table',
|
|
93
|
+
headers: ['팔레트', '색상 수', '추천 용도', '주의할 점'],
|
|
94
|
+
rows: [
|
|
95
|
+
['Game Boy', '4', '흑백 휴대용 게임기 느낌', '명암 차가 적으면 디테일이 뭉개질 수 있음'],
|
|
96
|
+
['NES 스타일', '16', '아케이드풍 도트 그래픽', '채도가 높은 색상의 균형 필요'],
|
|
97
|
+
['PICO-8', '16', '트렌디하고 선명한 아기자기한 스타일', '강렬한 색상 간의 대비 고려'],
|
|
98
|
+
['Commodore 64', '16', '고전 PC 게임 감성', '명확한 실루엣 표현이 효과적'],
|
|
99
|
+
['DawnBringer 16', '16', '범용성 높은 세련된 팔레트', '명확한 광원 표현이 필요함'],
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'title',
|
|
104
|
+
level: 2,
|
|
105
|
+
text: '스프라이트 시트 작업 흐름',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: '이미지를 불러온 후 확대 기능을 사용하여 픽셀 디테일이나 경계선이 뭉개지지 않았는지 확인하세요.',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'tip',
|
|
113
|
+
title: '색상 구성 팁',
|
|
114
|
+
html: '4개에서 16개 사이의 색상을 사용하는 것이 깔끔한 디테일을 유지하는 데 좋습니다.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
level: 2,
|
|
119
|
+
text: '내보내기 전 체크리스트',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'diagnostic',
|
|
123
|
+
variant: 'info',
|
|
124
|
+
title: '게임 적용 전 확인',
|
|
125
|
+
html: '100% 원본 비율에서 외곽선과 투명 배경 부분이 깨끗한지 점검하세요.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'glossary',
|
|
129
|
+
items: [
|
|
130
|
+
{
|
|
131
|
+
term: '색상 양자화 (Quantization)',
|
|
132
|
+
definition: '많은 수의 색상을 제한된 색상 집합으로 줄이는 과정.',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
term: '팔레트 램프 (Ramp)',
|
|
136
|
+
definition: '음영을 표현하기 위해 음영 단계별로 정리된 색상 계열.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
term: '인덱스 팔레트',
|
|
140
|
+
definition: '픽셀이 직접 색상 코드를 갖는 대신 색상표 번호를 참조하는 방식.',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
faq: [
|
|
146
|
+
{
|
|
147
|
+
question: '이미지가 서버로 전송되나요?',
|
|
148
|
+
answer: '아니요. 모든 작업은 사용자의 브라우저 내부에서 안전하게 진행됩니다.',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
question: '원하는 팔레트를 직접 입력할 수 있나요?',
|
|
152
|
+
answer: '네. Hex 색상 코드를 입력하고 「팔레트 적용」을 클릭하세요.',
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
howTo: [
|
|
156
|
+
{
|
|
157
|
+
name: '이미지 불러오기',
|
|
158
|
+
text: 'PNG, JPEG 또는 WebP 이미지를 드래그 앤 드롭합니다.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: '팔레트 선택',
|
|
162
|
+
text: '프리셋을 선택하거나 직접 Hex 코드를 입력합니다.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: '내보내기',
|
|
166
|
+
text: '색상이 변환된 PNG 이미지를 다운로드합니다.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: '도트 그래픽 팔레트 스왑 도구',
|
|
174
|
+
applicationCategory: 'DesignApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
'@context': 'https://schema.org',
|
|
180
|
+
'@type': 'FAQPage',
|
|
181
|
+
mainEntity: [
|
|
182
|
+
{
|
|
183
|
+
'@type': 'Question',
|
|
184
|
+
name: '이미지가 서버로 전송되나요?',
|
|
185
|
+
acceptedAnswer: {
|
|
186
|
+
'@type': 'Answer',
|
|
187
|
+
text: '아니요. 모든 작업은 사용자의 브라우저 내부에서 안전하게 진행됩니다.',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
'@type': 'Question',
|
|
192
|
+
name: '원하는 팔레트를 직접 입력할 수 있나요?',
|
|
193
|
+
acceptedAnswer: {
|
|
194
|
+
'@type': 'Answer',
|
|
195
|
+
text: '네. Hex 색상 코드를 입력하고 「팔레트 적용」을 클릭하세요.',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
'@context': 'https://schema.org',
|
|
202
|
+
'@type': 'HowTo',
|
|
203
|
+
name: '도트 그래픽 색상 변환 방법',
|
|
204
|
+
step: [
|
|
205
|
+
{ '@type': 'HowToStep', name: '이미지 불러오기', text: '이미지를 드래그 앤 드롭합니다.' },
|
|
206
|
+
{ '@type': 'HowToStep', name: '팔레트 선택', text: '프리셋을 선택하거나 직접 Hex 코드를 입력합니다.' },
|
|
207
|
+
{ '@type': 'HowToStep', name: '내보내기', text: '색상이 변환된 PNG 이미지를 다운로드합니다.' },
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
bibliography: [
|
|
212
|
+
{
|
|
213
|
+
name: 'MDN Canvas API',
|
|
214
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: 'Lospec Palette List',
|
|
218
|
+
url: 'https://lospec.com/palette-list',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'W3C Portable Network Graphics Specification',
|
|
222
|
+
url: 'https://www.w3.org/TR/png-3/',
|
|
223
|
+
},
|
|
224
|
+
],
|
|
225
|
+
};
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { PixelArtPaletteSwapperUI } from '../ui';
|
|
3
|
+
|
|
4
|
+
export const content: ToolLocaleContent<PixelArtPaletteSwapperUI> = {
|
|
5
|
+
slug: 'pixel-art-palet-wisselaar',
|
|
6
|
+
title: 'Pixel Art Palet Wisselaar',
|
|
7
|
+
description: 'Reduceer sprites en spritesheets tot klassieke consolepaletten of een aangepaste lijst hex-kleuren direct in je browser.',
|
|
8
|
+
ui: {
|
|
9
|
+
uploadTitle: 'Sleep een sprite of spritesheet',
|
|
10
|
+
uploadHint: 'PNG, JPEG of WebP worden lokaal verwerkt',
|
|
11
|
+
chooseImage: 'Afbeelding kiezen',
|
|
12
|
+
replaceImage: 'Afbeelding vervangen',
|
|
13
|
+
paletteTitle: 'Kies palet',
|
|
14
|
+
gameBoyPalette: 'Game Boy',
|
|
15
|
+
nesPalette: 'Geïnspireerd op NES',
|
|
16
|
+
pico8Palette: 'PICO-8',
|
|
17
|
+
commodore64Palette: 'Commodore 64',
|
|
18
|
+
dawnBringerPalette: 'DawnBringer 16',
|
|
19
|
+
customPalette: 'Aangepaste kleuren',
|
|
20
|
+
customPaletteHint: 'Scheid hex-waarden met komma s, spaties of nieuwe regels.',
|
|
21
|
+
applyCustomPalette: 'Palet toepassen',
|
|
22
|
+
resetCustomPalette: 'Herstellen',
|
|
23
|
+
sourcePreview: 'Origineel',
|
|
24
|
+
resultPreview: 'Gereduceerd resultaat',
|
|
25
|
+
waitingForImage: 'Wachten op een afbeelding',
|
|
26
|
+
uploadToPreview: 'Upload een afbeelding voor een voorbeeld',
|
|
27
|
+
resultEmpty: 'Originele en gereduceerde versie verschijnen naast elkaar.',
|
|
28
|
+
downloadPng: 'PNG downloaden',
|
|
29
|
+
downloadDisabled: 'Upload een afbeelding om te exporteren.',
|
|
30
|
+
colorCount: 'Bronkleuren',
|
|
31
|
+
mappedCount: 'Gebruikte kleuren',
|
|
32
|
+
imageSize: 'Afbeeldingsgrootte',
|
|
33
|
+
paletteCount: 'paletkleuren',
|
|
34
|
+
preserveAlpha: 'Transparantie behouden',
|
|
35
|
+
zoomLabel: 'Zoom',
|
|
36
|
+
processing: 'Pixels toewijzen',
|
|
37
|
+
invalidPalette: 'Voeg minimaal één geldige hex-kleur toe',
|
|
38
|
+
invalidImage: 'Kies een PNG-, JPEG- of WebP-afbeelding',
|
|
39
|
+
readyStatus: 'Klaar',
|
|
40
|
+
dropActive: 'Loslaten om te laden',
|
|
41
|
+
mappedSummary: '{source} bronkleuren omgezet naar {mapped} paletkleuren',
|
|
42
|
+
},
|
|
43
|
+
seo: [
|
|
44
|
+
{
|
|
45
|
+
type: 'title',
|
|
46
|
+
level: 2,
|
|
47
|
+
text: 'Zet een Volledig Gekleurde Sprite om naar een Doordacht Retropalet',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'paragraph',
|
|
51
|
+
html: 'Een beperkt kleurenpalet is meer dan een technische beperking. Het geeft een sprite een herkenbare kleurentaal, zorgt ervoor dat elementen in een scène als één geheel voelen en roept het visuele karakter van een specifieke console of retro-hardware op. Met deze online paletwisselaar kun je het originele beeld vergelijken met de gereduceerde versie terwijl je experimenteert met Game Boy, NES-geïnspireerde, PICO-8, Commodore 64, DawnBringer 16 en eigen paletten.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'title',
|
|
55
|
+
level: 2,
|
|
56
|
+
text: 'Hoe Conversie via Dichtstbijzijnde Kleur Werkt',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
type: 'paragraph',
|
|
60
|
+
html: 'De tool leest de rood-, groen- en blauwkanalen voor elke zichtbare pixel en vergelijkt die kleur met elke kleur in het gekozen palet. Het kiest de paletwaarde met de kleinste kwadratische RGB-afstand en schrijft de vervangende kleur naar een nieuwe canvasbuffer. Het alfakanaal blijft gescheiden, zodat transparante pixels transparant blijven en half-transparante randen hun originele dekking behouden wanneer Transparantie behouden is ingeschakeld.',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'comparative',
|
|
64
|
+
columns: 2,
|
|
65
|
+
items: [
|
|
66
|
+
{
|
|
67
|
+
title: 'Paletbeperking',
|
|
68
|
+
description: 'Elke bronkleur wordt vervangen door de dichtstbijzijnde beschikbare kleurwaarde.',
|
|
69
|
+
points: [
|
|
70
|
+
'Snel en voorspelbaar voor sprites, iconen, tegels en interface-elementen',
|
|
71
|
+
'Behoudt de originele afmetingen en pixelposities exact',
|
|
72
|
+
'Maakt het eenvoudig om een vastgesteld kleurenbudget te controleren',
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
title: 'Palette Swapping',
|
|
77
|
+
description: 'Hetzelfde artwork kan worden omgezet naar een andere zorgvuldig gekozen set kleuren.',
|
|
78
|
+
points: [
|
|
79
|
+
'Handig voor alternatieve outfits, omgevingen en schade-statussen',
|
|
80
|
+
'Aangepaste hex-lijsten sluiten naadloos aan op je eigen artistieke richting',
|
|
81
|
+
'Het gedownloade PNG-bestand kan direct weer in je editor worden geïmporteerd',
|
|
82
|
+
],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'title',
|
|
88
|
+
level: 2,
|
|
89
|
+
text: 'Een Palet Kiezen voor Pixel Art',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
type: 'table',
|
|
93
|
+
headers: ['Palet', 'Kleuren', 'Geschikt voor', 'Let op'],
|
|
94
|
+
rows: [
|
|
95
|
+
['Game Boy', '4', 'Monochroom handheld-gevoel en duidelijke contraststudies', 'Een klein bereik kan nabijgelegen materialen samenvoegen'],
|
|
96
|
+
['Geïnspireerd op NES', '16', 'Karakteristieke arcade-sprites, personages en tegels', 'Zeer felle kleuren kunnen kleine details overheersen'],
|
|
97
|
+
['PICO-8', '16', 'Moderne pixel art met volle, verzadigde accenten', 'Sterk verzadigde tinten vragen om bewust contrast'],
|
|
98
|
+
['Commodore 64', '16', 'Zachte retro-scènes en klassieke computergame-esthetiek', 'Laag contrast werkt het beste met duidelijke silhouetten'],
|
|
99
|
+
['DawnBringer 16', '16', 'Veelzijdig handgekozen palet voor algemene pixel art', 'Kleurverlopen hebben nog steeds een duidelijke lichtrichting nodig'],
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'title',
|
|
104
|
+
level: 2,
|
|
105
|
+
text: 'Praktische Werkwijze voor Spritesheets',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: 'paragraph',
|
|
109
|
+
html: 'Begin met het grootste bronbestand dat je prettig kunt bewerken en upload de geëxporteerde sprite of spritesheet hier. Kies een preset om een richting te bepalen of plak een eigen hex-lijst. Inspecteer beide schermen op een hogere zoom om te controleren op verloren gelaatstrekken, samengevoegde omtrekken of highlights. Als het resultaat wazig oogt, probeer dan een palet met grotere contraststappen of voeg één bewuste accentkleur toe.',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'tip',
|
|
113
|
+
title: 'Houd het Palet Doordacht',
|
|
114
|
+
html: 'Een grotere kleurenlijst is niet automatisch beter. Begin met 4 tot 16 kleuren, geef elke kleur een duidelijke functie en bewaar de brightste waarden voor focuspunten of goed leesbare accenten. Het algoritme behoudt de pixelposities, maar kan niet bepalen welke kleuren de visuele hiërarchie van je sprite moeten dragen.',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
type: 'title',
|
|
118
|
+
level: 2,
|
|
119
|
+
text: 'Export-Checklist voor Pixel Art',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'diagnostic',
|
|
123
|
+
variant: 'info',
|
|
124
|
+
title: 'Vóór het Importeren van het Gereduceerde PNG bestand',
|
|
125
|
+
html: 'Controleer het resultaat op 100 procent en op de uiteindelijke schaal in de game, zorg dat transparante randen schoon blijven, controleer of belangrijke silhouetten goed leesbaar blijven en bewaar het originele bronbestand naast de export om het palet aan te passen zonder opnieuw te hoeven beginnen.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'glossary',
|
|
129
|
+
items: [
|
|
130
|
+
{
|
|
131
|
+
term: 'Kleurkwantisatie',
|
|
132
|
+
definition: 'Het proces van het reduceren van een grote set bronkleuren tot een kleinere, vastgestelde set.',
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
term: 'Kleurgradiënt (Ramp)',
|
|
136
|
+
definition: 'Een geordende reeks van donkere, middelste en lichte tinten om een oppervlak te schaduwen.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
term: 'Geïndexeerd palet',
|
|
140
|
+
definition: 'Een compacte kleurentabel waarin pixels verwijzen naar indexen in een lijst in plaats van volledige kleurwaarden op te slaan.',
|
|
141
|
+
},
|
|
142
|
+
],
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
faq: [
|
|
146
|
+
{
|
|
147
|
+
question: 'Worden mijn afbeeldingen geüpload naar een server?',
|
|
148
|
+
answer: 'Nee. De afbeelding wordt in je browser op een canvas gedecodeerd, lokaal verwerkt met JavaScript en direct geëxporteerd als PNG. De tool heeft geen uploadstap.',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
question: 'Kan ik mijn eigen palet gebruiken?',
|
|
152
|
+
answer: 'Ja. Plak 6-cijferige of 3-cijferige hex-kleuren in het veld Aangepaste kleuren, gescheiden door komma s, spaties of nieuwe regels, en kies Palet toepassen.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
question: 'Wordt de grootte van mijn sprite aangepast?',
|
|
156
|
+
answer: 'Nee. De uitvoer behoudt de originele breedte, hoogte, pixelposities en alfawaarden wanneer Transparantie behouden is ingeschakeld.',
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
question: 'Welk algoritme wordt er gebruikt?',
|
|
160
|
+
answer: 'Elke zichtbare pixel wordt toegewezen aan de dichtstbijzijnde kleur in het gekozen palet via kwadratische euclidische afstand in RGB-ruimte. Het is snel, deterministisch en eenvoudig te bekijken, maar gebruikt geen dithering of perceptuele Lab-kleurcorrectie.',
|
|
161
|
+
},
|
|
162
|
+
],
|
|
163
|
+
howTo: [
|
|
164
|
+
{
|
|
165
|
+
name: 'Sprite laden',
|
|
166
|
+
text: 'Sleep een PNG-, JPEG- of WebP-sprite of spritesheet naar het werkgebied of gebruik Afbeelding kiezen.',
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
name: 'Palet kiezen',
|
|
170
|
+
text: 'Kies een klassieke preset of voer je eigen hex-kleuren in. Het resultaat wordt direct bijgewerkt.',
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: 'Vergelijken en exporteren',
|
|
174
|
+
text: 'Inspecteer het originele en het gereduceerde scherm, pas de zoom aan en download het resultaat als PNG.',
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
schemas: [
|
|
178
|
+
{
|
|
179
|
+
'@context': 'https://schema.org',
|
|
180
|
+
'@type': 'SoftwareApplication',
|
|
181
|
+
name: 'Pixel Art Palet Wisselaar',
|
|
182
|
+
applicationCategory: 'DesignApplication',
|
|
183
|
+
operatingSystem: 'Any',
|
|
184
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
'@context': 'https://schema.org',
|
|
188
|
+
'@type': 'FAQPage',
|
|
189
|
+
mainEntity: [
|
|
190
|
+
{
|
|
191
|
+
'@type': 'Question',
|
|
192
|
+
name: 'Worden mijn afbeeldingen geüpload naar een server?',
|
|
193
|
+
acceptedAnswer: {
|
|
194
|
+
'@type': 'Answer',
|
|
195
|
+
text: 'Nee. De afbeelding wordt lokaal verwerkt in de browser en direct als PNG geëxporteerd.',
|
|
196
|
+
},
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
'@type': 'Question',
|
|
200
|
+
name: 'Kan ik mijn eigen palet gebruiken?',
|
|
201
|
+
acceptedAnswer: {
|
|
202
|
+
'@type': 'Answer',
|
|
203
|
+
text: 'Ja. Plak hex-kleuren in het veld Aangepaste kleuren en kies Palet toepassen.',
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
'@context': 'https://schema.org',
|
|
210
|
+
'@type': 'HowTo',
|
|
211
|
+
name: 'Hoe reduceer je een sprite naar een retropalet',
|
|
212
|
+
step: [
|
|
213
|
+
{ '@type': 'HowToStep', name: 'Sprite laden', text: 'Sleep een bestand naar het werkgebied.' },
|
|
214
|
+
{ '@type': 'HowToStep', name: 'Palet kiezen', text: 'Kies een preset of voer hex-kleuren in.' },
|
|
215
|
+
{ '@type': 'HowToStep', name: 'Vergelijken en exporteren', text: 'Inspecteer het resultaat en download de PNG.' },
|
|
216
|
+
],
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
bibliography: [
|
|
220
|
+
{
|
|
221
|
+
name: 'MDN Canvas API',
|
|
222
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: 'Lospec Palette List',
|
|
226
|
+
url: 'https://lospec.com/palette-list',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: 'W3C Portable Network Graphics Specification',
|
|
230
|
+
url: 'https://www.w3.org/TR/png-3/',
|
|
231
|
+
},
|
|
232
|
+
],
|
|
233
|
+
};
|