@jjlmoya/utils-converters 1.25.0 → 1.27.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/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_translation_completeness.test.ts +18 -12
  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';
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
3
  import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { BmpAPngLocaleContent } from '../index';
5
-
6
- const slug = 'convertidor-bmp-a-png';
7
- const title = 'Convertidor de BMP a PNG';
8
- const description =
9
- 'Convierte imágenes BMP a PNG sin pérdida de calidad. Compresión moderna sin artefactos. Sin subir archivos. Gratis y 100% privado.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Arrastra archivos BMP...',
13
- convertText: 'Para convertirlos a PNG al instante',
14
- selectFiles: 'Seleccionar archivos',
15
- processedFiles: 'Archivos procesados',
16
- downloadAll: 'Descargar Todo (.zip)',
4
+ import type { BmpAPngLocaleContent } from '../index';
5
+
6
+ const slug = 'convertidor-bmp-a-png';
7
+ const title = 'Convertidor de BMP a PNG';
8
+ const description =
9
+ 'Convierte imágenes BMP a PNG sin pérdida de calidad. Compresión moderna sin artefactos. Sin subir archivos. Gratis y 100% privado.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Arrastra archivos BMP...',
13
+ convertText: 'Para convertirlos a PNG al instante',
14
+ selectFiles: 'Seleccionar archivos',
15
+ processedFiles: 'Archivos procesados',
16
+ downloadAll: 'Descargar Todo (.zip)',
17
17
  pending: 'Pendiente',
18
- bibliographyTitle: 'Referencias Bibliográficas',
19
- faqTitle: 'Preguntas Frecuentes',
20
- };
21
-
22
- const faq: BmpAPngLocaleContent['faq'] = [
23
- {
24
- question: '¿Cuál es la principal diferencia entre BMP y PNG?',
25
- answer:
26
- 'Tanto BMP como PNG son formatos sin pérdida. La diferencia radica en la optimización: PNG entiende de algoritmos de compresión modernos para guardar la misma imagen ocupando 5 o 10 veces menos memoria que el BMP.',
27
- },
28
- {
29
- question: '¿Es la conversión realmente privada?',
30
- answer:
31
- 'Sí. Toda la red fotográfica la hace tu ordenador. Absolutamente nadie accede a tus archivos en tránsito local.',
32
- },
33
- {
34
- question: '¿Por qué PNG sobre JPEG en este caso?',
35
- answer:
36
- 'Si tienes un archivo BMP, es porque la imagen tiene colores precisos. Pasar un BMP al estándar destructivo JPG ensuciaría tus colores netos. El PNG protege esa fidelidad.',
37
- },
38
- ];
39
-
40
- const howTo: BmpAPngLocaleContent['howTo'] = [
41
- {
42
- name: 'Acopla tu Fotografía',
43
- text: 'Mueve tranquilamente los archivos de origen BMP a nuestra zona para soltar elementos web.',
44
- },
45
- {
46
- name: 'Traduce Sin Transmisión de Red',
47
- text: 'Percibe en apenas un segundo el procesado limpio hecho localmente por tu JS de HTML5.',
48
- },
49
- {
50
- name: 'Consigue PNGs Puros',
51
- text: 'Baja las réplicas en PNG individualmente o mediante un paquete comprimido.',
52
- },
53
- ];
54
-
55
- const seo: BmpAPngLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'Convertidor de BMP a PNG: El Reemplazo Sin Pérdida del Formato BMP',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'El BMP es un formato sin compresión que ocupa enormes cantidades de espacio sin ningún beneficio técnico frente al PNG. Ambos son formatos sin pérdida: guardan cada píxel con exactitud absoluta. Pero el PNG añade compresión lossless mediante el algoritmo Deflate, lo que reduce el tamaño del archivo entre 3 y 5 veces sin sacrificar ni un solo bit de información visual. El PNG es, en esencia, lo que el BMP siempre quiso ser.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'BMP vs PNG: misma calidad, tamaño radicalmente diferente',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'La diferencia fundamental entre BMP y PNG no está en la calidad de imagen - ambos son sin pérdida - sino en la eficiencia de almacenamiento. El BMP almacena píxeles en bruto: sin compresión, sin optimización, sin consideración por el espacio. El PNG analiza los patrones de píxeles repetidos y los codifica de forma compacta mediante Deflate, el mismo algoritmo que usa ZIP.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'Además de la compresión superior, el PNG añade una característica que el BMP nunca tuvo: canal alfa completo para transparencias. Capturas de pantalla, gráficos de interfaz, logotipos, diagramas técnicos: todos estos tipos de imágenes se benefician enormemente de la conversión a PNG, que mantiene cada valor de color exacto mientras reduce el peso del archivo a una fracción del original.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Comparativa de Arquitectura: Local vs Nube',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'Convertidores Cloud',
88
- description: 'Servicios que procesan tus archivos BMP en servidores de terceros.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Tus imágenes de trabajo viajan por internet',
93
- 'Tiempo de espera proporcional al tamaño del BMP',
94
- 'Límites de tamaño en planes gratuitos',
95
- 'Riesgo de análisis o retención de tus archivos',
96
- ],
97
- },
98
- {
99
- title: 'Nuestra Arquitectura Local',
100
- description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
101
- icon: 'mdi:laptop-mac',
102
- highlight: true,
103
- points: [
104
- 'El BMP se procesa localmente, nunca sale de tu dispositivo',
105
- 'Conversión instantánea en milisegundos',
106
- 'Sin límites de tamaño ni de número de archivos',
107
- 'Privacidad total: 0 bytes enviados al exterior',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'Cómo funciona la conversión local de BMP a PNG',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'El proceso utiliza el Canvas API de HTML5. El archivo BMP se lee con la API <code>FileReader</code> del navegador y se decodifica como un Blob en memoria. Ese Blob se dibuja sobre un canvas HTML5 invisible. A continuación, el método <code>toDataURL(\'image/png\')</code> aplica el algoritmo de compresión PNG nativo del navegador y genera el archivo resultante.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'A diferencia de la conversión a JPG, la conversión a PNG es completamente lossless: cada valor de color del BMP original se preserva exactamente en el PNG resultante. No hay artefactos, no hay suavizado de bordes, no hay pérdida de información. El archivo final es visualmente idéntico al BMP pero ocupa entre 3 y 5 veces menos espacio en disco.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'PNG es el estándar moderno donde BMP se usaba antes',
128
- html: 'Si trabajas con software antiguo que exporta BMP (maquinaria industrial, sistemas de control, software de diagnóstico médico), convertir a PNG es la mejor decisión. PNG es compatible con absolutamente todos los programas modernos, mantiene la fidelidad de color perfecta y ocupa hasta 5 veces menos espacio. Es la migración más sencilla y segura posible.',
129
- },
130
- {
131
- type: 'title',
132
- text: 'Casos de uso y compatibilidad del PNG resultante',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- 'Capturas de pantalla y gráficos de interfaz con colores exactos preservados.',
140
- 'Imágenes de documentación técnica y diagramas de software.',
141
- 'Exportaciones de CAD, sistemas industriales y software legacy.',
142
- 'Logotipos y elementos de identidad visual con transparencia añadida.',
143
- 'Compatible con Adobe Photoshop, GIMP, Figma y todos los editores modernos.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusión: el PNG es lo que el BMP siempre debió ser',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'Convertir BMP a PNG es la modernización más natural de un archivo de imagen: misma calidad sin pérdida, mayor compatibilidad, soporte de transparencia y entre 3 y 5 veces menos peso. Nuestra herramienta realiza esta conversión en milisegundos, directamente en tu navegador, sin subir ningún archivo a ningún servidor.',
154
- },
155
- ];
156
-
18
+ bibliographyTitle: 'Referencias Bibliográficas',
19
+ faqTitle: 'Preguntas Frecuentes',
20
+ };
21
+
22
+ const faq: BmpAPngLocaleContent['faq'] = [
23
+ {
24
+ question: '¿Cuál es la principal diferencia entre BMP y PNG?',
25
+ answer:
26
+ 'Tanto BMP como PNG son formatos sin pérdida. La diferencia radica en la optimización: PNG entiende de algoritmos de compresión modernos para guardar la misma imagen ocupando 5 o 10 veces menos memoria que el BMP.',
27
+ },
28
+ {
29
+ question: '¿Es la conversión realmente privada?',
30
+ answer:
31
+ 'Sí. Toda la red fotográfica la hace tu ordenador. Absolutamente nadie accede a tus archivos en tránsito local.',
32
+ },
33
+ {
34
+ question: '¿Por qué PNG sobre JPEG en este caso?',
35
+ answer:
36
+ 'Si tienes un archivo BMP, es porque la imagen tiene colores precisos. Pasar un BMP al estándar destructivo JPG ensuciaría tus colores netos. El PNG protege esa fidelidad.',
37
+ },
38
+ ];
39
+
40
+ const howTo: BmpAPngLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Acopla tu Fotografía',
43
+ text: 'Mueve tranquilamente los archivos de origen BMP a nuestra zona para soltar elementos web.',
44
+ },
45
+ {
46
+ name: 'Traduce Sin Transmisión de Red',
47
+ text: 'Percibe en apenas un segundo el procesado limpio hecho localmente por tu JS de HTML5.',
48
+ },
49
+ {
50
+ name: 'Consigue PNGs Puros',
51
+ text: 'Baja las réplicas en PNG individualmente o mediante un paquete comprimido.',
52
+ },
53
+ ];
54
+
55
+ const seo: BmpAPngLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'Convertidor de BMP a PNG: El Reemplazo Sin Pérdida del Formato BMP',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'El BMP es un formato sin compresión que ocupa enormes cantidades de espacio sin ningún beneficio técnico frente al PNG. Ambos son formatos sin pérdida: guardan cada píxel con exactitud absoluta. Pero el PNG añade compresión lossless mediante el algoritmo Deflate, lo que reduce el tamaño del archivo entre 3 y 5 veces sin sacrificar ni un solo bit de información visual. El PNG es, en esencia, lo que el BMP siempre quiso ser.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'BMP vs PNG: misma calidad, tamaño radicalmente diferente',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'La diferencia fundamental entre BMP y PNG no está en la calidad de imagen - ambos son sin pérdida - sino en la eficiencia de almacenamiento. El BMP almacena píxeles en bruto: sin compresión, sin optimización, sin consideración por el espacio. El PNG analiza los patrones de píxeles repetidos y los codifica de forma compacta mediante Deflate, el mismo algoritmo que usa ZIP.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'Además de la compresión superior, el PNG añade una característica que el BMP nunca tuvo: canal alfa completo para transparencias. Capturas de pantalla, gráficos de interfaz, logotipos, diagramas técnicos: todos estos tipos de imágenes se benefician enormemente de la conversión a PNG, que mantiene cada valor de color exacto mientras reduce el peso del archivo a una fracción del original.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Comparativa de Arquitectura: Local vs Nube',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'Convertidores Cloud',
88
+ description: 'Servicios que procesan tus archivos BMP en servidores de terceros.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Tus imágenes de trabajo viajan por internet',
93
+ 'Tiempo de espera proporcional al tamaño del BMP',
94
+ 'Límites de tamaño en planes gratuitos',
95
+ 'Riesgo de análisis o retención de tus archivos',
96
+ ],
97
+ },
98
+ {
99
+ title: 'Nuestra Arquitectura Local',
100
+ description: 'Procesamiento directo en tu hardware mediante tecnología Vanilla JS.',
101
+ icon: 'mdi:laptop-mac',
102
+ highlight: true,
103
+ points: [
104
+ 'El BMP se procesa localmente, nunca sale de tu dispositivo',
105
+ 'Conversión instantánea en milisegundos',
106
+ 'Sin límites de tamaño ni de número de archivos',
107
+ 'Privacidad total: 0 bytes enviados al exterior',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Cómo funciona la conversión local de BMP a PNG',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'El proceso utiliza el Canvas API de HTML5. El archivo BMP se lee con la API <code>FileReader</code> del navegador y se decodifica como un Blob en memoria. Ese Blob se dibuja sobre un canvas HTML5 invisible. A continuación, el método <code>toDataURL(\'image/png\')</code> aplica el algoritmo de compresión PNG nativo del navegador y genera el archivo resultante.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'A diferencia de la conversión a JPG, la conversión a PNG es completamente lossless: cada valor de color del BMP original se preserva exactamente en el PNG resultante. No hay artefactos, no hay suavizado de bordes, no hay pérdida de información. El archivo final es visualmente idéntico al BMP pero ocupa entre 3 y 5 veces menos espacio en disco.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'PNG es el estándar moderno donde BMP se usaba antes',
128
+ html: 'Si trabajas con software antiguo que exporta BMP (maquinaria industrial, sistemas de control, software de diagnóstico médico), convertir a PNG es la mejor decisión. PNG es compatible con absolutamente todos los programas modernos, mantiene la fidelidad de color perfecta y ocupa hasta 5 veces menos espacio. Es la migración más sencilla y segura posible.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Casos de uso y compatibilidad del PNG resultante',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ 'Capturas de pantalla y gráficos de interfaz con colores exactos preservados.',
140
+ 'Imágenes de documentación técnica y diagramas de software.',
141
+ 'Exportaciones de CAD, sistemas industriales y software legacy.',
142
+ 'Logotipos y elementos de identidad visual con transparencia añadida.',
143
+ 'Compatible con Adobe Photoshop, GIMP, Figma y todos los editores modernos.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusión: el PNG es lo que el BMP siempre debió ser',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Convertir BMP a PNG es la modernización más natural de un archivo de imagen: misma calidad sin pérdida, mayor compatibilidad, soporte de transparencia y entre 3 y 5 veces menos peso. Nuestra herramienta realiza esta conversión en milisegundos, directamente en tu navegador, sin subir ningún archivo a ningún servidor.',
154
+ },
155
+ ];
157
156
 
158
- export const content: BmpAPngLocaleContent = {
159
- slug,
160
- title,
161
- description,
162
- ui,
163
- seo,
164
- faq,
165
- bibliography,
166
- howTo,
167
- schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
168
- };
157
+
158
+ export const content: BmpAPngLocaleContent = {
159
+ slug,
160
+ title,
161
+ description,
162
+ ui,
163
+ seo,
164
+ faq,
165
+ bibliography,
166
+ howTo,
167
+ schemas: generateSchemas({ title, description, inLanguage: 'es', faq, howTo }),
168
+ };