@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,173 +1,173 @@
1
1
  import { bibliography } from '../bibliography';
2
- import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
- import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { WebpAPngLocaleContent } from '../index';
5
-
6
- const slug = 'convertidor-webp-a-png';
7
- const title = 'Convertir WebP a PNG Online y Gratis';
8
- const description =
9
- 'Convierte imágenes WebP a PNG en tu navegador. Conserva transparencias. Sin subir archivos a servidores. Gratis y 100% privado.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Arrastra archivos WebP...',
13
- convertText: 'Para convertirlos a PNG al instante',
14
- selectFiles: 'Seleccionar archivos',
15
- processedFiles: 'Archivos procesados',
16
- downloadAll: 'Descargar Todo (.zip)',
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
+ import { generateSchemas } from '../../../shared/logic/schemas';
4
+ import type { WebpAPngLocaleContent } from '../index';
5
+
6
+ const slug = 'convertidor-webp-a-png';
7
+ const title = 'Convertir WebP a PNG Online y Gratis';
8
+ const description =
9
+ 'Convierte imágenes WebP a PNG en tu navegador. Conserva transparencias. Sin subir archivos a servidores. Gratis y 100% privado.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Arrastra archivos WebP...',
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: WebpAPngLocaleContent['faq'] = [
23
- {
24
- question: '¿Por qué necesito convertir mis archivos WebP a PNG?',
25
- answer:
26
- 'Pese a ser más ligeros, los archivos WebP pueden dar incompatibilidades en programas de edición como Photoshop antiguos. El PNG asegura una compatibilidad universal al 100%.',
27
- },
28
- {
29
- question: '¿Se pierden las transparencias al pasar de WebP a PNG?',
30
- answer:
31
- 'En absoluto. A diferencia de la conversión a JPG, el PNG soporta el canal alfa. Nuestra utilidad preservará cualquier zona transparente del archivo original.',
32
- },
33
- {
34
- question: '¿Puedo subir archivos confidenciales de empresa?',
35
- answer:
36
- 'Puedes y debes. Como todo corre localmente por JavaScript, tus imágenes de empresa nunca abandonarán tu equipo ni se guardarán en servidores externos.',
37
- },
38
- ];
39
-
40
- const howTo: WebpAPngLocaleContent['howTo'] = [
41
- {
42
- name: 'Arrastra tus archivos WebP',
43
- text: 'Mueve y suelta tus archivos WebP sobre el panel principal o selecciona las imágenes de forma tradicional.',
44
- },
45
- {
46
- name: 'Conversión de Alta Fidelidad',
47
- text: 'Tu navegador redibujará píxel a píxel la imagen y generará una copia exacta en formato PNG, manteniendo la gama de colores original.',
48
- },
49
- {
50
- name: 'Descarga Individual o en Lote',
51
- text: 'Guarda cada archivo individualmente o, si procesaste un lote, pulsa el botón ZIP para bajarlos todos empaquetados.',
52
- },
53
- ];
54
-
55
- const seo: WebpAPngLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'Convertidor WebP a PNG: La Elección Profesional para Edición y Diseño',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'Cuando un diseñador descarga un recurso gráfico en formato <strong>WebP</strong> e intenta abrirlo en Photoshop, Figma o Illustrator, el resultado puede ser frustrante: el archivo no carga o pierde calidad. El formato <strong>PNG</strong> es el estándar indiscutible de la edición profesional: compresión sin pérdida, canal alfa completo y compatibilidad garantizada en toda la cadena de producción creativa.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'WebP para la Web, PNG para el Estudio',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'WebP es un formato de producción web: sus algoritmos de compresión están optimizados para reducir el peso de transferencia, no para preservar la máxima fidelidad en flujos de edición iterativos. Cada vez que guardas un WebP editado, el códec aplica compresión de nuevo. Para proyectos donde un archivo se modificará muchas veces, esto supone una degradación de calidad acumulativa.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'PNG utiliza <strong>compresión sin pérdida</strong> (lossless): los datos de cada píxel se preservan íntegramente sin importar cuántas veces guardes el archivo. Es el formato elegido por diseñadores UI/UX, ilustradores digitales y equipos de branding que necesitan mantener la integridad visual a través de decenas de revisiones. Herramientas como Photoshop, Figma, Sketch e Illustrator tratan al PNG como su formato nativo de exportación primario.',
77
- },
78
- {
79
- type: 'title',
80
- text: 'Comparativa: Conversión Local vs Nube',
81
- level: 3,
82
- },
83
- {
84
- type: 'comparative',
85
- items: [
86
- {
87
- title: 'Convertidores Cloud',
88
- description: 'Herramientas que suben tus archivos a un servidor remoto.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Tus assets de diseño se almacenan en servidores de terceros',
93
- 'Procesamiento remoto lento para archivos pesados',
94
- 'Riesgo de filtraciones en proyectos confidenciales de clientes',
95
- 'Conversión por lotes limitada o bajo pago',
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
- 'Tus diseños nunca abandonan tu máquina',
105
- 'Convierte por lotes decenas de archivos al instante',
106
- 'Preservación total del canal alfa y la gama de colores',
107
- 'Privacidad absoluta para proyectos de clientes',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'Cómo funciona técnicamente',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'Los navegadores modernos pueden decodificar WebP de forma nativa. Nuestra herramienta aprovecha esta capacidad para cargar el archivo en un elemento <strong>Image</strong> de JavaScript y, posteriormente, lo dibuja sobre un lienzo HTML5 con las mismas dimensiones del original. A diferencia de la conversión a JPG, aquí no hace falta relleno de fondo: el lienzo conserva el canal alfa completo.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'La exportación final utiliza el método <code>toDataURL(\'image/png\')</code>, que genera un PNG sin pérdida fiel al original. El resultado es un archivo listo para importar directamente en cualquier software de diseño profesional sin pasos intermedios, degradación de color o pérdida de transparencia.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'Consejo para editores',
128
- html: 'Utiliza PNG cuando necesites seguir editando la imagen. La compresión sin pérdida garantiza que no habrá degradación de calidad por guardados repetidos, algo crítico al trabajar con capas, máscaras o ajustes de color en Photoshop o Figma.',
129
- },
130
- {
131
- type: 'title',
132
- text: 'Casos de uso y compatibilidad',
133
- level: 3,
134
- },
135
- {
136
- type: 'list',
137
- icon: 'mdi:check-circle',
138
- items: [
139
- 'Importar recursos WebP en Photoshop, Figma, Sketch o Illustrator.',
140
- 'Preservar la transparencia en logos e iconos para uso en múltiples fondos.',
141
- 'Crear copias maestras de gráficos para proyectos de larga duración.',
142
- 'Exportar assets para apps móviles que requieren PNG con canal alfa.',
143
- 'Uso de imágenes en maquetas de diseño y presentaciones con fondos variables.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusión',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'Si WebP es el formato del servidor web, PNG es el formato del estudio de diseño. Esta herramienta convierte tus recursos WebP en PNGs listos para producción, con transparencia intacta y máxima calidad, todo en tu navegador y sin que tus archivos salgan nunca de tu equipo.',
154
- },
155
- ];
156
-
157
- export const content: WebpAPngLocaleContent = {
158
- slug,
159
- title,
160
- description,
161
- ui,
162
- seo,
163
- faq,
164
- bibliography,
165
- howTo,
166
- schemas: generateSchemas({
167
- title,
168
- description,
169
- inLanguage: 'es',
170
- faq,
171
- howTo,
172
- }),
173
- };
18
+ bibliographyTitle: 'Referencias Bibliográficas',
19
+ faqTitle: 'Preguntas Frecuentes',
20
+ };
21
+
22
+ const faq: WebpAPngLocaleContent['faq'] = [
23
+ {
24
+ question: '¿Por qué necesito convertir mis archivos WebP a PNG?',
25
+ answer:
26
+ 'Pese a ser más ligeros, los archivos WebP pueden dar incompatibilidades en programas de edición como Photoshop antiguos. El PNG asegura una compatibilidad universal al 100%.',
27
+ },
28
+ {
29
+ question: '¿Se pierden las transparencias al pasar de WebP a PNG?',
30
+ answer:
31
+ 'En absoluto. A diferencia de la conversión a JPG, el PNG soporta el canal alfa. Nuestra utilidad preservará cualquier zona transparente del archivo original.',
32
+ },
33
+ {
34
+ question: '¿Puedo subir archivos confidenciales de empresa?',
35
+ answer:
36
+ 'Puedes y debes. Como todo corre localmente por JavaScript, tus imágenes de empresa nunca abandonarán tu equipo ni se guardarán en servidores externos.',
37
+ },
38
+ ];
39
+
40
+ const howTo: WebpAPngLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Arrastra tus archivos WebP',
43
+ text: 'Mueve y suelta tus archivos WebP sobre el panel principal o selecciona las imágenes de forma tradicional.',
44
+ },
45
+ {
46
+ name: 'Conversión de Alta Fidelidad',
47
+ text: 'Tu navegador redibujará píxel a píxel la imagen y generará una copia exacta en formato PNG, manteniendo la gama de colores original.',
48
+ },
49
+ {
50
+ name: 'Descarga Individual o en Lote',
51
+ text: 'Guarda cada archivo individualmente o, si procesaste un lote, pulsa el botón ZIP para bajarlos todos empaquetados.',
52
+ },
53
+ ];
54
+
55
+ const seo: WebpAPngLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'Convertidor WebP a PNG: La Elección Profesional para Edición y Diseño',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'Cuando un diseñador descarga un recurso gráfico en formato <strong>WebP</strong> e intenta abrirlo en Photoshop, Figma o Illustrator, el resultado puede ser frustrante: el archivo no carga o pierde calidad. El formato <strong>PNG</strong> es el estándar indiscutible de la edición profesional: compresión sin pérdida, canal alfa completo y compatibilidad garantizada en toda la cadena de producción creativa.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'WebP para la Web, PNG para el Estudio',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'WebP es un formato de producción web: sus algoritmos de compresión están optimizados para reducir el peso de transferencia, no para preservar la máxima fidelidad en flujos de edición iterativos. Cada vez que guardas un WebP editado, el códec aplica compresión de nuevo. Para proyectos donde un archivo se modificará muchas veces, esto supone una degradación de calidad acumulativa.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'PNG utiliza <strong>compresión sin pérdida</strong> (lossless): los datos de cada píxel se preservan íntegramente sin importar cuántas veces guardes el archivo. Es el formato elegido por diseñadores UI/UX, ilustradores digitales y equipos de branding que necesitan mantener la integridad visual a través de decenas de revisiones. Herramientas como Photoshop, Figma, Sketch e Illustrator tratan al PNG como su formato nativo de exportación primario.',
77
+ },
78
+ {
79
+ type: 'title',
80
+ text: 'Comparativa: Conversión Local vs Nube',
81
+ level: 3,
82
+ },
83
+ {
84
+ type: 'comparative',
85
+ items: [
86
+ {
87
+ title: 'Convertidores Cloud',
88
+ description: 'Herramientas que suben tus archivos a un servidor remoto.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Tus assets de diseño se almacenan en servidores de terceros',
93
+ 'Procesamiento remoto lento para archivos pesados',
94
+ 'Riesgo de filtraciones en proyectos confidenciales de clientes',
95
+ 'Conversión por lotes limitada o bajo pago',
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
+ 'Tus diseños nunca abandonan tu máquina',
105
+ 'Convierte por lotes decenas de archivos al instante',
106
+ 'Preservación total del canal alfa y la gama de colores',
107
+ 'Privacidad absoluta para proyectos de clientes',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Cómo funciona técnicamente',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Los navegadores modernos pueden decodificar WebP de forma nativa. Nuestra herramienta aprovecha esta capacidad para cargar el archivo en un elemento <strong>Image</strong> de JavaScript y, posteriormente, lo dibuja sobre un lienzo HTML5 con las mismas dimensiones del original. A diferencia de la conversión a JPG, aquí no hace falta relleno de fondo: el lienzo conserva el canal alfa completo.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'La exportación final utiliza el método <code>toDataURL(\'image/png\')</code>, que genera un PNG sin pérdida fiel al original. El resultado es un archivo listo para importar directamente en cualquier software de diseño profesional sin pasos intermedios, degradación de color o pérdida de transparencia.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'Consejo para editores',
128
+ html: 'Utiliza PNG cuando necesites seguir editando la imagen. La compresión sin pérdida garantiza que no habrá degradación de calidad por guardados repetidos, algo crítico al trabajar con capas, máscaras o ajustes de color en Photoshop o Figma.',
129
+ },
130
+ {
131
+ type: 'title',
132
+ text: 'Casos de uso y compatibilidad',
133
+ level: 3,
134
+ },
135
+ {
136
+ type: 'list',
137
+ icon: 'mdi:check-circle',
138
+ items: [
139
+ 'Importar recursos WebP en Photoshop, Figma, Sketch o Illustrator.',
140
+ 'Preservar la transparencia en logos e iconos para uso en múltiples fondos.',
141
+ 'Crear copias maestras de gráficos para proyectos de larga duración.',
142
+ 'Exportar assets para apps móviles que requieren PNG con canal alfa.',
143
+ 'Uso de imágenes en maquetas de diseño y presentaciones con fondos variables.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusión',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Si WebP es el formato del servidor web, PNG es el formato del estudio de diseño. Esta herramienta convierte tus recursos WebP en PNGs listos para producción, con transparencia intacta y máxima calidad, todo en tu navegador y sin que tus archivos salgan nunca de tu equipo.',
154
+ },
155
+ ];
156
+
157
+ export const content: WebpAPngLocaleContent = {
158
+ slug,
159
+ title,
160
+ description,
161
+ ui,
162
+ seo,
163
+ faq,
164
+ bibliography,
165
+ howTo,
166
+ schemas: generateSchemas({
167
+ title,
168
+ description,
169
+ inLanguage: 'es',
170
+ faq,
171
+ howTo,
172
+ }),
173
+ };