@jjlmoya/utils-converters 1.24.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 (134) 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/entries.ts +6 -0
  12. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  13. package/src/tests/category_seo_quality.test.ts +74 -0
  14. package/src/tests/faq_count.test.ts +1 -1
  15. package/src/tests/no_h1_in_components.test.ts +1 -1
  16. package/src/tests/seo_parity.test.ts +2 -2
  17. package/src/tests/seo_wellformed_export.test.ts +65 -0
  18. package/src/tests/tool_validation.test.ts +15 -15
  19. package/src/tool/avifAJpg/i18n/en.ts +164 -164
  20. package/src/tool/avifAJpg/i18n/es.ts +164 -164
  21. package/src/tool/avifAJpg/i18n/fr.ts +164 -164
  22. package/src/tool/avifAJpg/i18n/ja.ts +166 -166
  23. package/src/tool/avifAJpg/i18n/ko.ts +166 -166
  24. package/src/tool/avifAJpg/i18n/zh.ts +166 -166
  25. package/src/tool/avifAJpg/seo.astro +15 -15
  26. package/src/tool/avifAPng/i18n/en.ts +164 -164
  27. package/src/tool/avifAPng/i18n/es.ts +164 -164
  28. package/src/tool/avifAPng/i18n/fr.ts +164 -164
  29. package/src/tool/avifAPng/i18n/ja.ts +166 -166
  30. package/src/tool/avifAPng/i18n/ko.ts +166 -166
  31. package/src/tool/avifAPng/i18n/zh.ts +166 -166
  32. package/src/tool/avifAPng/seo.astro +15 -15
  33. package/src/tool/avifAWebp/i18n/en.ts +164 -164
  34. package/src/tool/avifAWebp/i18n/es.ts +164 -164
  35. package/src/tool/avifAWebp/i18n/fr.ts +164 -164
  36. package/src/tool/avifAWebp/i18n/ja.ts +166 -166
  37. package/src/tool/avifAWebp/i18n/ko.ts +166 -166
  38. package/src/tool/avifAWebp/i18n/zh.ts +166 -166
  39. package/src/tool/avifAWebp/seo.astro +15 -15
  40. package/src/tool/bmpAJpg/i18n/en.ts +164 -164
  41. package/src/tool/bmpAJpg/i18n/es.ts +164 -164
  42. package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
  43. package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
  44. package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
  45. package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
  46. package/src/tool/bmpAJpg/seo.astro +15 -15
  47. package/src/tool/bmpAPng/i18n/en.ts +164 -164
  48. package/src/tool/bmpAPng/i18n/es.ts +164 -164
  49. package/src/tool/bmpAPng/i18n/fr.ts +164 -164
  50. package/src/tool/bmpAPng/i18n/ja.ts +165 -165
  51. package/src/tool/bmpAPng/i18n/ko.ts +165 -165
  52. package/src/tool/bmpAPng/i18n/zh.ts +165 -165
  53. package/src/tool/bmpAPng/seo.astro +15 -15
  54. package/src/tool/bmpAWebp/i18n/en.ts +164 -164
  55. package/src/tool/bmpAWebp/i18n/es.ts +164 -164
  56. package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
  57. package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
  58. package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
  59. package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
  60. package/src/tool/bmpAWebp/seo.astro +15 -15
  61. package/src/tool/gifAJpg/i18n/en.ts +164 -164
  62. package/src/tool/gifAJpg/i18n/es.ts +164 -164
  63. package/src/tool/gifAJpg/i18n/fr.ts +164 -164
  64. package/src/tool/gifAJpg/i18n/ja.ts +166 -166
  65. package/src/tool/gifAJpg/i18n/ko.ts +166 -166
  66. package/src/tool/gifAJpg/i18n/zh.ts +166 -166
  67. package/src/tool/gifAJpg/seo.astro +15 -15
  68. package/src/tool/gifAPng/i18n/en.ts +164 -164
  69. package/src/tool/gifAPng/i18n/es.ts +164 -164
  70. package/src/tool/gifAPng/i18n/fr.ts +164 -164
  71. package/src/tool/gifAPng/i18n/ja.ts +166 -166
  72. package/src/tool/gifAPng/i18n/ko.ts +166 -166
  73. package/src/tool/gifAPng/i18n/zh.ts +166 -166
  74. package/src/tool/gifAPng/seo.astro +15 -15
  75. package/src/tool/gifAWebp/i18n/en.ts +164 -164
  76. package/src/tool/gifAWebp/i18n/es.ts +164 -164
  77. package/src/tool/gifAWebp/i18n/fr.ts +164 -164
  78. package/src/tool/gifAWebp/i18n/ja.ts +166 -166
  79. package/src/tool/gifAWebp/i18n/ko.ts +166 -166
  80. package/src/tool/gifAWebp/i18n/zh.ts +166 -166
  81. package/src/tool/gifAWebp/seo.astro +15 -15
  82. package/src/tool/imagenBase64/i18n/en.ts +154 -154
  83. package/src/tool/imagenBase64/i18n/es.ts +154 -154
  84. package/src/tool/imagenBase64/i18n/fr.ts +154 -154
  85. package/src/tool/imagenBase64/seo.astro +15 -15
  86. package/src/tool/jpgAIco/seo.astro +15 -15
  87. package/src/tool/jpgAPng/i18n/en.ts +164 -164
  88. package/src/tool/jpgAPng/i18n/es.ts +164 -164
  89. package/src/tool/jpgAPng/i18n/fr.ts +164 -164
  90. package/src/tool/jpgAPng/i18n/ja.ts +166 -166
  91. package/src/tool/jpgAPng/i18n/ko.ts +166 -166
  92. package/src/tool/jpgAPng/i18n/zh.ts +166 -166
  93. package/src/tool/jpgAPng/seo.astro +15 -15
  94. package/src/tool/jpgAWebp/i18n/en.ts +164 -164
  95. package/src/tool/jpgAWebp/i18n/es.ts +164 -164
  96. package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
  97. package/src/tool/jpgAWebp/seo.astro +15 -15
  98. package/src/tool/pngAIco/seo.astro +15 -15
  99. package/src/tool/pngAJpg/i18n/de.ts +21 -21
  100. package/src/tool/pngAJpg/i18n/es.ts +177 -177
  101. package/src/tool/pngAJpg/i18n/fr.ts +137 -137
  102. package/src/tool/pngAJpg/i18n/id.ts +89 -89
  103. package/src/tool/pngAJpg/i18n/it.ts +89 -89
  104. package/src/tool/pngAJpg/i18n/ko.ts +177 -177
  105. package/src/tool/pngAJpg/i18n/nl.ts +20 -20
  106. package/src/tool/pngAJpg/i18n/pl.ts +89 -89
  107. package/src/tool/pngAJpg/i18n/pt.ts +89 -89
  108. package/src/tool/pngAJpg/i18n/ru.ts +177 -177
  109. package/src/tool/pngAJpg/i18n/sv.ts +89 -89
  110. package/src/tool/pngAJpg/i18n/tr.ts +89 -89
  111. package/src/tool/pngAJpg/seo.astro +15 -15
  112. package/src/tool/pngAWebp/i18n/en.ts +164 -164
  113. package/src/tool/pngAWebp/i18n/es.ts +164 -164
  114. package/src/tool/pngAWebp/i18n/fr.ts +164 -164
  115. package/src/tool/pngAWebp/seo.astro +15 -15
  116. package/src/tool/svgAJpg/i18n/fr.ts +164 -164
  117. package/src/tool/svgAJpg/seo.astro +15 -15
  118. package/src/tool/svgAPng/i18n/fr.ts +164 -164
  119. package/src/tool/svgAPng/seo.astro +15 -15
  120. package/src/tool/webpAIco/seo.astro +15 -15
  121. package/src/tool/webpAJpg/seo.astro +15 -15
  122. package/src/tool/webpAPng/bibliography.ts +13 -13
  123. package/src/tool/webpAPng/i18n/de.ts +166 -166
  124. package/src/tool/webpAPng/i18n/es.ts +171 -171
  125. package/src/tool/webpAPng/i18n/fr.ts +166 -166
  126. package/src/tool/webpAPng/i18n/id.ts +166 -166
  127. package/src/tool/webpAPng/i18n/it.ts +166 -166
  128. package/src/tool/webpAPng/i18n/nl.ts +166 -166
  129. package/src/tool/webpAPng/i18n/pl.ts +166 -166
  130. package/src/tool/webpAPng/i18n/pt.ts +166 -166
  131. package/src/tool/webpAPng/i18n/ru.ts +166 -166
  132. package/src/tool/webpAPng/i18n/sv.ts +166 -166
  133. package/src/tool/webpAPng/i18n/tr.ts +167 -167
  134. 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
+ };