@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,167 +1,167 @@
1
1
  import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
- import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { BmpAPngLocaleContent } from '../index';
5
-
6
- const slug = 'bmp-to-png-converter';
7
- const title = 'BMP PNG 변환기';
8
- const description =
9
- '품질 저하 없이 BMP 이미지를 PNG로 변환하세요. 노이즈 없는 현대적인 압축 기술. 파일 업로드 없음. 무료이며 100% 안전한 로컬 변환.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'BMP 파일을 여기로 드래그하세요...',
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 { BmpAPngLocaleContent } from '../index';
5
+
6
+ const slug = 'bmp-to-png-converter';
7
+ const title = 'BMP PNG 변환기';
8
+ const description =
9
+ '품질 저하 없이 BMP 이미지를 PNG로 변환하세요. 노이즈 없는 현대적인 압축 기술. 파일 업로드 없음. 무료이며 100% 안전한 로컬 변환.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'BMP 파일을 여기로 드래그하세요...',
13
+ convertText: '즉시 PNG로 변환하기',
14
+ selectFiles: '파일 선택',
15
+ processedFiles: '처리된 파일',
16
+ downloadAll: '모두 다운로드 (.zip)',
17
17
  pending: '대기 중',
18
- bibliographyTitle: '참고 문헌',
19
- faqTitle: '자주 묻는 질문',
20
- };
21
-
22
- const faq: BmpAPngLocaleContent['faq'] = [
23
- {
24
- question: 'BMP와 PNG의 가장 큰 차이점은 무엇인가요?',
25
- answer:
26
- 'BMP와 PNG 모두 무손실 형식입니다. 차이점은 최적화에 있습니다. PNG는 현대적인 압축 알고리즘을 지원하여 BMP보다 5~10배 적은 메모리를 사용하면서도 동일한 이미지를 저장할 수 있습니다.',
27
- },
28
- {
29
- question: '변환 과정이 정말 안전한가요?',
30
- answer:
31
- '네. 모든 이미지 처리는 사용자의 기기 내에서 로컬로 수행됩니다. 외부 서버로 파일이 전송되지 않으므로 프라이버시가 완벽하게 보호됩니다.',
32
- },
33
- {
34
- question: '이 경우 JPEG 대신 PNG를 선택해야 하는 이유는 무엇인가요?',
35
- answer:
36
- 'BMP 파일을 사용한다는 것은 이미지의 색상이 정밀하다는 것을 의미합니다. BMP를 손실 압축 방식인 JPEG로 변환하면 화질이 저하될 수 있지만, PNG는 원본의 충실도를 완벽하게 보존합니다.',
37
- },
38
- ];
39
-
40
- const howTo: BmpAPngLocaleContent['howTo'] = [
41
- {
42
- name: '이미지 불러오기',
43
- text: 'BMP 원본 파일을 웹 페이지의 드롭 영역으로 안전하게 끌어다 놓으세요.',
44
- },
45
- {
46
- name: '네트워크 전송 없는 무손실 변환',
47
- text: 'HTML5 JS 기술을 통해 사용자의 브라우저에서 직접 수행되는 즉각적인 로컬 처리를 경험해 보세요.',
48
- },
49
- {
50
- name: '순수 PNG 파일 생성',
51
- text: '변환된 PNG 결과물을 개별적으로 또는 압축 파일 형태로 다운로드하세요.',
52
- },
53
- ];
54
-
55
- const seo: BmpAPngLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'BMP to PNG 변환기: BMP 형식을 대체하는 완벽한 무손실 솔루션',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'BMP는 압축되지 않은 형식으로, PNG와 비교했을 때 기술적인 이점 없이 방대한 저장 공간을 차지합니다. 두 형식 모두 픽셀 정보를 정확하게 저장하는 무손실 방식이지만, PNG는 Deflate 알고리즘을 통한 무손실 압축을 추가하여 시각적 정보의 손실 없이 파일 크기를 3~5배 줄여줍니다. PNG는 본질적으로 BMP가 지향해야 할 현대적인 대체제입니다.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'BMP vs PNG: 동일한 화질, 혁신적인 용량 차이',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'BMP와 PNG의 근본적인 차이는 화질이 아니라 저장 효율성에 있습니다. BMP는 픽셀 데이터를 압축이나 최적화 없이 그대로 저장하여 공간을 낭비합니다. 반면 PNG는 반복되는 픽셀 패턴을 분석하고 ZIP 파일과 동일한 원리인 Deflate 방식의 압축을 통해 컴팩트하게 인코딩합니다.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: '또한 PNG는 투명도를 지원하는 알파 채널 기능을 갖추고 있어 로고, 아이콘, 인터페이스 디자인 등에 매우 유리합니다. BMP를 PNG로 변환하면 원본 색상 값을 정확하게 유지하면서도 파일 용량을 획기적으로 줄일 수 있습니다.',
77
- },
78
- {
79
- type: 'title',
80
- text: '인프라 비교: 로컬 처리 vs 클라우드 저장',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: '클라우드 변환기',
88
- description: '타사 서버로 BMP 파일을 전송하여 처리하는 서비스입니다.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- '사용자의 이미지가 인터넷망을 통해 외부로 전송됨',
93
- 'BMP 파일 크기에 비례하여 업로드 성능이 저하됨',
94
- '무료 서비스의 경우 용량 및 횟수 제한이 존재함',
95
- '파일의 분석 또는 서버 저장에 따른 보안 리스크 발생 가능함',
96
- ],
97
- },
98
- {
99
- title: '당사의 로컬 아키텍처',
100
- description: 'Vanilla JS 기술을 통해 사용자의 하드웨어에서 직접 안전하게 처리합니다.',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- 'BMP 처리가 로컬에서 수행되며 기기를 절대 벗어나지 않음',
105
- '즉각적인 밀리초 단위의 변환 속도',
106
- '파일 크기나 개수에 대한 인위적인 제한 없음',
107
- '완벽한 프라이버시 보호: 외부로 0바이트 전송됨',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'BMP to PNG 로컬 변환 기술의 원리',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: '이 프로세스는 HTML5 Canvas API를 활용합니다. BMP 파일은 브라우저의 <code>FileReader</code> API를 통해 메모리에 Blob 데이터로 읽혀지며, 보이지 않는 캔버스 위에 그려집니다. 그 후 브라우저 고유의 PNG 압축 알고리즘이 적용되어 원본과 시각적으로 동일하지만 용량은 훨씬 최적화된 결과물이 생성됩니다.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'JPEG 변환과 달리 PNG 변환은 완전한 무손실 과정입니다. 원본 BMP의 모든 색상 값이 결과물에 정확하게 보존되며, 가장자리 뭉개짐이나 정보 손실이 전혀 없습니다. 최종 파일은 육안으로 구분이 불가능할 정도로 동일하면서 디스크 공간은 3~5배 더 절약해 줍니다.',
124
- },
125
- {
126
- type: 'paragraph',
127
- html: '산업용 장비, 제어 시스템 또는 의료 진단 소프트웨어와 같이 BMP 형식을 주로 사용하는 환경에서 PNG로 변환하는 것은 매우 현명한 선택입니다. 현대의 모든 프로그램과 호환되며 용량 부담을 줄여줍니다. 이는 가장 효율적이고 안전한 시스템 현대화 방안 중 하나입니다.',
128
- },
129
- {
130
- type: 'title',
131
- text: '변환된 PNG의 활용 사례 및 호환성',
132
- level: 3,
133
- },
134
- {
135
- type: 'list',
136
- icon: 'mdi:check-circle',
137
- items: [
138
- '원본 색상이 완벽하게 보존된 스크린샷 및 UI 그래픽 자료.',
139
- '기술 문서용 정밀 이미지 및 소프트웨어 다이어그램.',
140
- 'CAD 데이터, 산업용 시스템 및 레거시 소프트웨어 파일 현대화.',
141
- '투명 배경 테마가 적용된 로고 및 시각적 아이덴티티 요소.',
142
- '포토샵, 피그마, GIMP 등 모든 최신 그래픽 편집 툴 지원.',
143
- ],
144
- },
145
- {
146
- type: 'title',
147
- text: '결론: PNG는 BMP의 완벽한 미래형 대체제입니다',
148
- level: 3,
149
- },
150
- {
151
- type: 'paragraph',
152
- html: 'BMP를 PNG로 변환하는 것은 이미지 파일의 가장 자연스러운 현대화 방법입니다. 동일한 화질을 유지하면서도 더 넓은 호환성, 투명도 지원, 그리고 대폭 줄어든 용량을 제공합니다. 당사의 도구는 서버 업로드 없이 브라우저에서 즉시 이 작업을 완료해 드립니다.',
153
- },
154
- ];
155
-
156
-
157
- export const content: BmpAPngLocaleContent = {
158
- slug,
159
- title,
160
- description,
161
- ui,
162
- seo,
163
- faq,
164
- bibliography,
165
- howTo,
166
- schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
167
- };
18
+ bibliographyTitle: '참고 문헌',
19
+ faqTitle: '자주 묻는 질문',
20
+ };
21
+
22
+ const faq: BmpAPngLocaleContent['faq'] = [
23
+ {
24
+ question: 'BMP와 PNG의 가장 큰 차이점은 무엇인가요?',
25
+ answer:
26
+ 'BMP와 PNG 모두 무손실 형식입니다. 차이점은 최적화에 있습니다. PNG는 현대적인 압축 알고리즘을 지원하여 BMP보다 5~10배 적은 메모리를 사용하면서도 동일한 이미지를 저장할 수 있습니다.',
27
+ },
28
+ {
29
+ question: '변환 과정이 정말 안전한가요?',
30
+ answer:
31
+ '네. 모든 이미지 처리는 사용자의 기기 내에서 로컬로 수행됩니다. 외부 서버로 파일이 전송되지 않으므로 프라이버시가 완벽하게 보호됩니다.',
32
+ },
33
+ {
34
+ question: '이 경우 JPEG 대신 PNG를 선택해야 하는 이유는 무엇인가요?',
35
+ answer:
36
+ 'BMP 파일을 사용한다는 것은 이미지의 색상이 정밀하다는 것을 의미합니다. BMP를 손실 압축 방식인 JPEG로 변환하면 화질이 저하될 수 있지만, PNG는 원본의 충실도를 완벽하게 보존합니다.',
37
+ },
38
+ ];
39
+
40
+ const howTo: BmpAPngLocaleContent['howTo'] = [
41
+ {
42
+ name: '이미지 불러오기',
43
+ text: 'BMP 원본 파일을 웹 페이지의 드롭 영역으로 안전하게 끌어다 놓으세요.',
44
+ },
45
+ {
46
+ name: '네트워크 전송 없는 무손실 변환',
47
+ text: 'HTML5 JS 기술을 통해 사용자의 브라우저에서 직접 수행되는 즉각적인 로컬 처리를 경험해 보세요.',
48
+ },
49
+ {
50
+ name: '순수 PNG 파일 생성',
51
+ text: '변환된 PNG 결과물을 개별적으로 또는 압축 파일 형태로 다운로드하세요.',
52
+ },
53
+ ];
54
+
55
+ const seo: BmpAPngLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'BMP to PNG 변환기: BMP 형식을 대체하는 완벽한 무손실 솔루션',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'BMP는 압축되지 않은 형식으로, PNG와 비교했을 때 기술적인 이점 없이 방대한 저장 공간을 차지합니다. 두 형식 모두 픽셀 정보를 정확하게 저장하는 무손실 방식이지만, PNG는 Deflate 알고리즘을 통한 무손실 압축을 추가하여 시각적 정보의 손실 없이 파일 크기를 3~5배 줄여줍니다. PNG는 본질적으로 BMP가 지향해야 할 현대적인 대체제입니다.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'BMP vs PNG: 동일한 화질, 혁신적인 용량 차이',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'BMP와 PNG의 근본적인 차이는 화질이 아니라 저장 효율성에 있습니다. BMP는 픽셀 데이터를 압축이나 최적화 없이 그대로 저장하여 공간을 낭비합니다. 반면 PNG는 반복되는 픽셀 패턴을 분석하고 ZIP 파일과 동일한 원리인 Deflate 방식의 압축을 통해 컴팩트하게 인코딩합니다.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: '또한 PNG는 투명도를 지원하는 알파 채널 기능을 갖추고 있어 로고, 아이콘, 인터페이스 디자인 등에 매우 유리합니다. BMP를 PNG로 변환하면 원본 색상 값을 정확하게 유지하면서도 파일 용량을 획기적으로 줄일 수 있습니다.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: '인프라 비교: 로컬 처리 vs 클라우드 저장',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: '클라우드 변환기',
88
+ description: '타사 서버로 BMP 파일을 전송하여 처리하는 서비스입니다.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ '사용자의 이미지가 인터넷망을 통해 외부로 전송됨',
93
+ 'BMP 파일 크기에 비례하여 업로드 성능이 저하됨',
94
+ '무료 서비스의 경우 용량 및 횟수 제한이 존재함',
95
+ '파일의 분석 또는 서버 저장에 따른 보안 리스크 발생 가능함',
96
+ ],
97
+ },
98
+ {
99
+ title: '당사의 로컬 아키텍처',
100
+ description: 'Vanilla JS 기술을 통해 사용자의 하드웨어에서 직접 안전하게 처리합니다.',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ 'BMP 처리가 로컬에서 수행되며 기기를 절대 벗어나지 않음',
105
+ '즉각적인 밀리초 단위의 변환 속도',
106
+ '파일 크기나 개수에 대한 인위적인 제한 없음',
107
+ '완벽한 프라이버시 보호: 외부로 0바이트 전송됨',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'BMP to PNG 로컬 변환 기술의 원리',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: '이 프로세스는 HTML5 Canvas API를 활용합니다. BMP 파일은 브라우저의 <code>FileReader</code> API를 통해 메모리에 Blob 데이터로 읽혀지며, 보이지 않는 캔버스 위에 그려집니다. 그 후 브라우저 고유의 PNG 압축 알고리즘이 적용되어 원본과 시각적으로 동일하지만 용량은 훨씬 최적화된 결과물이 생성됩니다.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'JPEG 변환과 달리 PNG 변환은 완전한 무손실 과정입니다. 원본 BMP의 모든 색상 값이 결과물에 정확하게 보존되며, 가장자리 뭉개짐이나 정보 손실이 전혀 없습니다. 최종 파일은 육안으로 구분이 불가능할 정도로 동일하면서 디스크 공간은 3~5배 더 절약해 줍니다.',
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '산업용 장비, 제어 시스템 또는 의료 진단 소프트웨어와 같이 BMP 형식을 주로 사용하는 환경에서 PNG로 변환하는 것은 매우 현명한 선택입니다. 현대의 모든 프로그램과 호환되며 용량 부담을 줄여줍니다. 이는 가장 효율적이고 안전한 시스템 현대화 방안 중 하나입니다.',
128
+ },
129
+ {
130
+ type: 'title',
131
+ text: '변환된 PNG의 활용 사례 및 호환성',
132
+ level: 3,
133
+ },
134
+ {
135
+ type: 'list',
136
+ icon: 'mdi:check-circle',
137
+ items: [
138
+ '원본 색상이 완벽하게 보존된 스크린샷 및 UI 그래픽 자료.',
139
+ '기술 문서용 정밀 이미지 및 소프트웨어 다이어그램.',
140
+ 'CAD 데이터, 산업용 시스템 및 레거시 소프트웨어 파일 현대화.',
141
+ '투명 배경 테마가 적용된 로고 및 시각적 아이덴티티 요소.',
142
+ '포토샵, 피그마, GIMP 등 모든 최신 그래픽 편집 툴 지원.',
143
+ ],
144
+ },
145
+ {
146
+ type: 'title',
147
+ text: '결론: PNG는 BMP의 완벽한 미래형 대체제입니다',
148
+ level: 3,
149
+ },
150
+ {
151
+ type: 'paragraph',
152
+ html: 'BMP를 PNG로 변환하는 것은 이미지 파일의 가장 자연스러운 현대화 방법입니다. 동일한 화질을 유지하면서도 더 넓은 호환성, 투명도 지원, 그리고 대폭 줄어든 용량을 제공합니다. 당사의 도구는 서버 업로드 없이 브라우저에서 즉시 이 작업을 완료해 드립니다.',
153
+ },
154
+ ];
155
+
156
+
157
+ export const content: BmpAPngLocaleContent = {
158
+ slug,
159
+ title,
160
+ description,
161
+ ui,
162
+ seo,
163
+ faq,
164
+ bibliography,
165
+ howTo,
166
+ schemas: generateSchemas({ title, description, inLanguage: 'ko', faq, howTo }),
167
+ };