@jjlmoya/utils-converters 1.25.0 → 1.26.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.
Files changed (133) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/fr.ts +1 -1
  5. package/src/category/i18n/id.ts +1 -1
  6. package/src/category/i18n/it.ts +1 -1
  7. package/src/category/i18n/nl.ts +1 -1
  8. package/src/category/i18n/pl.ts +1 -1
  9. package/src/category/i18n/pt.ts +1 -1
  10. package/src/category/i18n/sv.ts +1 -1
  11. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  12. package/src/tests/category_seo_quality.test.ts +74 -0
  13. package/src/tests/faq_count.test.ts +1 -1
  14. package/src/tests/no_h1_in_components.test.ts +1 -1
  15. package/src/tests/seo_parity.test.ts +2 -2
  16. package/src/tests/seo_wellformed_export.test.ts +65 -0
  17. package/src/tests/tool_validation.test.ts +15 -15
  18. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  19. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  22. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  24. package/src/tool/avifAJpg/seo.astro +15 -15
  25. package/src/tool/avifAPng/i18n/en.ts +164 -164
  26. package/src/tool/avifAPng/i18n/es.ts +164 -164
  27. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  28. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  29. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  30. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  31. package/src/tool/avifAPng/seo.astro +15 -15
  32. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  33. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  36. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  38. package/src/tool/avifAWebp/seo.astro +15 -15
  39. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  40. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  43. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  45. package/src/tool/bmpAJpg/seo.astro +15 -15
  46. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  47. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  50. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  52. package/src/tool/bmpAPng/seo.astro +15 -15
  53. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  54. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  57. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  59. package/src/tool/bmpAWebp/seo.astro +15 -15
  60. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  61. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  64. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  66. package/src/tool/gifAJpg/seo.astro +15 -15
  67. package/src/tool/gifAPng/i18n/en.ts +164 -164
  68. package/src/tool/gifAPng/i18n/es.ts +164 -164
  69. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  70. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  71. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  72. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  73. package/src/tool/gifAPng/seo.astro +15 -15
  74. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  75. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  78. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  80. package/src/tool/gifAWebp/seo.astro +15 -15
  81. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  82. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  84. package/src/tool/imagenBase64/seo.astro +15 -15
  85. package/src/tool/jpgAIco/seo.astro +15 -15
  86. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  87. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  90. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  92. package/src/tool/jpgAPng/seo.astro +15 -15
  93. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  94. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  96. package/src/tool/jpgAWebp/seo.astro +15 -15
  97. package/src/tool/pngAIco/seo.astro +15 -15
  98. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  99. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  100. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  101. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  102. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  104. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  105. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  106. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  108. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  109. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  110. package/src/tool/pngAJpg/seo.astro +15 -15
  111. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  112. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  114. package/src/tool/pngAWebp/seo.astro +15 -15
  115. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  116. package/src/tool/svgAJpg/seo.astro +15 -15
  117. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  118. package/src/tool/svgAPng/seo.astro +15 -15
  119. package/src/tool/webpAIco/seo.astro +15 -15
  120. package/src/tool/webpAJpg/seo.astro +15 -15
  121. package/src/tool/webpAPng/bibliography.ts +13 -13
  122. package/src/tool/webpAPng/i18n/de.ts +166 -166
  123. package/src/tool/webpAPng/i18n/es.ts +171 -171
  124. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  125. package/src/tool/webpAPng/i18n/id.ts +166 -166
  126. package/src/tool/webpAPng/i18n/it.ts +166 -166
  127. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  128. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  130. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  131. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  132. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  133. package/src/tool/webpAPng/seo.astro +15 -15
@@ -1,168 +1,168 @@
1
1
  import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
- import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { JpgAPngLocaleContent } from '../index';
5
-
6
- const slug = 'jpg-to-png-converter';
7
- const title = 'JPGをPNGにオンラインで無料で変換';
8
- const description =
9
- 'ブラウザ上でファイルをアップロードせずにJPG画像をPNGに変換します。ロスレス変換、無料で完全にプライベートに使用できます。';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'JPGファイルをドラッグ...',
13
- convertText: '即座にPNGに変換します',
14
- selectFiles: 'ファイルを選択',
15
- processedFiles: '処理済みファイル',
16
- downloadAll: 'すべてダウンロード (.zip)',
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
+ import { generateSchemas } from '../../../shared/logic/schemas';
4
+ import type { JpgAPngLocaleContent } from '../index';
5
+
6
+ const slug = 'jpg-to-png-converter';
7
+ const title = 'JPGをPNGにオンラインで無料で変換';
8
+ const description =
9
+ 'ブラウザ上でファイルをアップロードせずにJPG画像をPNGに変換します。ロスレス変換、無料で完全にプライベートに使用できます。';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'JPGファイルをドラッグ...',
13
+ convertText: '即座にPNGに変換します',
14
+ selectFiles: 'ファイルを選択',
15
+ processedFiles: '処理済みファイル',
16
+ downloadAll: 'すべてダウンロード (.zip)',
17
17
  pending: '待機中',
18
- bibliographyTitle: '参考文献',
19
- faqTitle: 'よくある質問',
20
- };
21
-
22
- const faq: JpgAPngLocaleContent['faq'] = [
23
- {
24
- question: 'いつJPGからPNGへの変換を使うべきですか?',
25
- answer:
26
- '写真内のテキストやロゴを編集する場合は常に。JPGを何度も保存すると、画像が劣化します。PNGは圧縮を固定します。',
27
- },
28
- {
29
- question: 'PNGファイルはすぐに背景が透明になりますか?',
30
- answer:
31
- 'いいえ。元のJPGはフラットで、そのような構造的なチャンネルはありません。結果のPNGはそのコンテナを準備します。その後、Photoshopなどのエディタを使用して要素を分離する必要があります。',
32
- },
33
- {
34
- question: 'このウェブサイトにトラフィック制限はありますか?',
35
- answer:
36
- 'クラウドに依存しないEdgeテクノロジーのおかげで、変換の重量に制限はありません。すべてお使いのコンピュータまたはモバイル端末を使用するためです。',
37
- },
38
- ];
39
-
40
- const howTo: JpgAPngLocaleContent['howTo'] = [
41
- {
42
- name: 'JPGをパネルにドラッグ',
43
- text: 'マウスまたはコンピュータのセレクタを使用してJPG形式の静止画像をアップロードしてください。',
44
- },
45
- {
46
- name: 'ロスレス実行',
47
- text: 'Vanillaソフトウェアが、描画ビットをPNGファミリー固有のロスレスラッパーに送り込みます。',
48
- },
49
- {
50
- name: 'セッションを終了',
51
- text: 'パネルをクリックすると、ブラウザがダウンロードされたウェブアセットをユーザーフォルダに保存します。',
52
- },
53
- ];
54
-
55
- const seo: JpgAPngLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'JPGからPNGへのコンバーター:ロスレス編集と透明度',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: '<strong>JPG</strong>はカメラの写真には無敵ですが、弱点があります。ファイルを保存するたびに非可逆圧縮が再適用され、エッジやグラデーションが徐々に劣化します。<strong>PNG</strong>は可逆圧縮を使用しており、一度保存されたピクセルは不変です。JPGをPNGに変換することは、集中的な編集のために画像を準備したり、透明な背景を追加したり、何度も保存が必要なデザインワークフローに統合したりする場合の重要な操作です。',
64
- },
65
- {
66
- type: 'title',
67
- text: 'JPGかPNGか? 各フォーマットをいつ使うべきか',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: '<strong>JPG</strong>は写真の王様です。ファイルサイズが小さく、すべてに互換性があります。しかし、圧縮によるノイズ(アーティファクト)は、編集や再保存のたびに蓄積されます。画像を繰り返し切り抜いたり、補正したり、テキストを追加したりする必要がある場合、JPGから始めるとサイクルごとに劣化が生じることを意味します。また、JPGにはアルファチャンネルがなく、背景を透明にすることができないため、ロゴ、アイコン、UI要素には適していません。',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: '<strong>PNG</strong>は、企業ロゴ、鮮明なテキスト付きのスクリーンショット、インターフェース要素、後で切り抜く必要がある白い背景の製品画像、または複数回編集されるグラフィックリソースにとって正しい選択です。可逆圧縮により、テキストのエッジが完全に定義されたままになり、ベタ塗りの色がJPEGノイズなしで純粋なまま保たれることが保証されます。',
77
- },
78
- {
79
- type: 'title',
80
- text: '比較:ローカル変換 vs クラウド',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'クラウドコンバーター',
88
- description: 'ファイルをリモートサーバーにアップロードするツール。',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'アップロードとダウンロードのネットワーク遅延',
93
- '画像が他人のサーバーに残る',
94
- 'サイズや1日の変換回数の制限',
95
- '押し付けがましい広告やサードパーティ製トラッカー',
96
- ],
97
- },
98
- {
99
- title: '当サイトのローカルアーキテクチャ',
100
- description: 'Vanilla JSテクノロジーを使用してハードウェア上で直接処理。',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- '瞬時の速度 - ネットワーク遅延ゼロ',
105
- '完全なプライバシー - 0バイトが外部に送信される',
106
- 'ファイルサイズやファイル数の制限なし',
107
- '広告やトラッキングのないクリーンなインターフェース',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: '技術的な仕組み',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'プロセスは純粋にローカルです。ブラウザは選択されたJPGを含む<strong>Blob</strong>を作成し、メモリ内の<strong>HTML5キャンバス</strong>上に描画します。レンダリング後、<code>toDataURL(\'image/png\')</code>が呼び出されます。ブラウザに統合されたPNGコーデックが、新たな非可逆圧縮を適用することなく各ピクセルを再コード化します。結果として得られるPNGは、JPGの現在の状態を忠実に保持します。改善も改悪もされず、ただ「静止」されます。',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: '得られたPNGは、PhotoshopやGIMPなどの専門的なツールで使用されている可逆DEFLATE圧縮を使用します。情報を破棄せずにすべてのピクセルを保存するため、サイズは元のJPGより大きく(通常2〜5倍)なります。これは、忠実度と無限の編集可能性のために支払う対価です。',
124
- },
125
- {
126
- type: 'tip',
127
- title: '重要:PNGはJPEGの品質を回復させません',
128
- html: 'JPGをPNGに変換しても、元のJPEG圧縮中に<strong>失われた品質は回復しません</strong>。JPGにすでにブロックノイズや色ノイズがあった場合、PNGはそれらをそのまま保持します。単にそれ以上のノイズが追加されるのを防ぐだけです。変換は、将来の編集によってこれ以上劣化しないように、画像の現在の状態を「凍結」するものと考えてください。',
129
- },
130
- {
131
- type: 'title',
132
- text: '使用例と互換性',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- '切り抜き後に透明な背景が必要なロゴやブランド要素。',
140
- '何度も編集して再保存される、テキスト付きのスクリーンショット。',
141
- 'クリーンで切り抜き可能な白い背景が必要なEコマース用の製品画像。',
142
- 'PowerPointやGoogle Slidesのプレゼンテーション用グラフィックリソース。',
143
- 'エッジの鮮明さが重要なウェブおよびモバイルアプリケーション用のUIアセット。',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: '結論',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'JPGからPNGへの変換は、本格的なデザインワークフローにおける最初のステップです。元の品質を向上させるものではありませんが、将来の編集からすべてのピクセルを保護します。このツールを使用すれば、プロセスは瞬時に完全にプライベートに行われ、企業や個人の画像がデバイスの外に出ることは一切ありません。',
154
- },
155
- ];
156
-
157
-
158
- export const content: JpgAPngLocaleContent = {
159
- slug,
160
- title,
161
- description,
162
- ui,
163
- seo,
164
- faq,
165
- bibliography,
166
- howTo,
167
- schemas: generateSchemas({ title, description, inLanguage: 'ja', faq, howTo }),
168
- };
18
+ bibliographyTitle: '参考文献',
19
+ faqTitle: 'よくある質問',
20
+ };
21
+
22
+ const faq: JpgAPngLocaleContent['faq'] = [
23
+ {
24
+ question: 'いつJPGからPNGへの変換を使うべきですか?',
25
+ answer:
26
+ '写真内のテキストやロゴを編集する場合は常に。JPGを何度も保存すると、画像が劣化します。PNGは圧縮を固定します。',
27
+ },
28
+ {
29
+ question: 'PNGファイルはすぐに背景が透明になりますか?',
30
+ answer:
31
+ 'いいえ。元のJPGはフラットで、そのような構造的なチャンネルはありません。結果のPNGはそのコンテナを準備します。その後、Photoshopなどのエディタを使用して要素を分離する必要があります。',
32
+ },
33
+ {
34
+ question: 'このウェブサイトにトラフィック制限はありますか?',
35
+ answer:
36
+ 'クラウドに依存しないEdgeテクノロジーのおかげで、変換の重量に制限はありません。すべてお使いのコンピュータまたはモバイル端末を使用するためです。',
37
+ },
38
+ ];
39
+
40
+ const howTo: JpgAPngLocaleContent['howTo'] = [
41
+ {
42
+ name: 'JPGをパネルにドラッグ',
43
+ text: 'マウスまたはコンピュータのセレクタを使用してJPG形式の静止画像をアップロードしてください。',
44
+ },
45
+ {
46
+ name: 'ロスレス実行',
47
+ text: 'Vanillaソフトウェアが、描画ビットをPNGファミリー固有のロスレスラッパーに送り込みます。',
48
+ },
49
+ {
50
+ name: 'セッションを終了',
51
+ text: 'パネルをクリックすると、ブラウザがダウンロードされたウェブアセットをユーザーフォルダに保存します。',
52
+ },
53
+ ];
54
+
55
+ const seo: JpgAPngLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'JPGからPNGへのコンバーター:ロスレス編集と透明度',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: '<strong>JPG</strong>はカメラの写真には無敵ですが、弱点があります。ファイルを保存するたびに非可逆圧縮が再適用され、エッジやグラデーションが徐々に劣化します。<strong>PNG</strong>は可逆圧縮を使用しており、一度保存されたピクセルは不変です。JPGをPNGに変換することは、集中的な編集のために画像を準備したり、透明な背景を追加したり、何度も保存が必要なデザインワークフローに統合したりする場合の重要な操作です。',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'JPGかPNGか? 各フォーマットをいつ使うべきか',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: '<strong>JPG</strong>は写真の王様です。ファイルサイズが小さく、すべてに互換性があります。しかし、圧縮によるノイズ(アーティファクト)は、編集や再保存のたびに蓄積されます。画像を繰り返し切り抜いたり、補正したり、テキストを追加したりする必要がある場合、JPGから始めるとサイクルごとに劣化が生じることを意味します。また、JPGにはアルファチャンネルがなく、背景を透明にすることができないため、ロゴ、アイコン、UI要素には適していません。',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: '<strong>PNG</strong>は、企業ロゴ、鮮明なテキスト付きのスクリーンショット、インターフェース要素、後で切り抜く必要がある白い背景の製品画像、または複数回編集されるグラフィックリソースにとって正しい選択です。可逆圧縮により、テキストのエッジが完全に定義されたままになり、ベタ塗りの色がJPEGノイズなしで純粋なまま保たれることが保証されます。',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: '比較:ローカル変換 vs クラウド',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'クラウドコンバーター',
88
+ description: 'ファイルをリモートサーバーにアップロードするツール。',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'アップロードとダウンロードのネットワーク遅延',
93
+ '画像が他人のサーバーに残る',
94
+ 'サイズや1日の変換回数の制限',
95
+ '押し付けがましい広告やサードパーティ製トラッカー',
96
+ ],
97
+ },
98
+ {
99
+ title: '当サイトのローカルアーキテクチャ',
100
+ description: 'Vanilla JSテクノロジーを使用してハードウェア上で直接処理。',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ '瞬時の速度 - ネットワーク遅延ゼロ',
105
+ '完全なプライバシー - 0バイトが外部に送信される',
106
+ 'ファイルサイズやファイル数の制限なし',
107
+ '広告やトラッキングのないクリーンなインターフェース',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: '技術的な仕組み',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'プロセスは純粋にローカルです。ブラウザは選択されたJPGを含む<strong>Blob</strong>を作成し、メモリ内の<strong>HTML5キャンバス</strong>上に描画します。レンダリング後、<code>toDataURL(\'image/png\')</code>が呼び出されます。ブラウザに統合されたPNGコーデックが、新たな非可逆圧縮を適用することなく各ピクセルを再コード化します。結果として得られるPNGは、JPGの現在の状態を忠実に保持します。改善も改悪もされず、ただ「静止」されます。',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: '得られたPNGは、PhotoshopやGIMPなどの専門的なツールで使用されている可逆DEFLATE圧縮を使用します。情報を破棄せずにすべてのピクセルを保存するため、サイズは元のJPGより大きく(通常2〜5倍)なります。これは、忠実度と無限の編集可能性のために支払う対価です。',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: '重要:PNGはJPEGの品質を回復させません',
128
+ html: 'JPGをPNGに変換しても、元のJPEG圧縮中に<strong>失われた品質は回復しません</strong>。JPGにすでにブロックノイズや色ノイズがあった場合、PNGはそれらをそのまま保持します。単にそれ以上のノイズが追加されるのを防ぐだけです。変換は、将来の編集によってこれ以上劣化しないように、画像の現在の状態を「凍結」するものと考えてください。',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: '使用例と互換性',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ '切り抜き後に透明な背景が必要なロゴやブランド要素。',
140
+ '何度も編集して再保存される、テキスト付きのスクリーンショット。',
141
+ 'クリーンで切り抜き可能な白い背景が必要なEコマース用の製品画像。',
142
+ 'PowerPointやGoogle Slidesのプレゼンテーション用グラフィックリソース。',
143
+ 'エッジの鮮明さが重要なウェブおよびモバイルアプリケーション用のUIアセット。',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: '結論',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'JPGからPNGへの変換は、本格的なデザインワークフローにおける最初のステップです。元の品質を向上させるものではありませんが、将来の編集からすべてのピクセルを保護します。このツールを使用すれば、プロセスは瞬時に完全にプライベートに行われ、企業や個人の画像がデバイスの外に出ることは一切ありません。',
154
+ },
155
+ ];
156
+
157
+
158
+ export const content: JpgAPngLocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'ja', faq, howTo }),
168
+ };