@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';
2
+ import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
3
3
  import { generateSchemas } from '../../../shared/logic/schemas';
4
- import type { GifAPngLocaleContent } from '../index';
5
-
6
- const slug = 'convertidor-gif-a-png';
7
- const title = 'Convertir GIF a PNG Online';
8
- const description =
9
- 'Extrae el primer fotograma de tus GIF y conviértelo a PNG preservando transparencias. Sin servidor. Procesado local. Gratis.';
10
-
11
- const ui: ImageConverterUI = {
12
- dragText: 'Arrastra archivos GIF...',
13
- convertText: 'Para convertirlos a PNG al instante',
14
- selectFiles: 'Seleccionar archivos',
15
- processedFiles: 'Archivos procesados',
16
- downloadAll: 'Descargar Todo (.zip)',
4
+ import type { GifAPngLocaleContent } from '../index';
5
+
6
+ const slug = 'convertidor-gif-a-png';
7
+ const title = 'Convertir GIF a PNG Online';
8
+ const description =
9
+ 'Extrae el primer fotograma de tus GIF y conviértelo a PNG preservando transparencias. Sin servidor. Procesado local. Gratis.';
10
+
11
+ const ui: ImageConverterUI = {
12
+ dragText: 'Arrastra archivos GIF...',
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: GifAPngLocaleContent['faq'] = [
23
- {
24
- question: '¿Por qué convertir un formato animado como GIF a un formato estático como PNG?',
25
- answer:
26
- 'Muchas redes sociales o avatares no admiten fotografías que cambian. Extraer el primer cuadro de un GIF complejo hacia un PNG de alta calidad soluciona las barreras y reduce pesos inservibles.',
27
- },
28
- {
29
- question: '¿Se conservan las transparencias del viejo GIF en el PNG resultante?',
30
- answer:
31
- 'Sí, a diferencia del JPG, el formato PNG mantiene el canal alfa. Si el GIF tenía un fondo transparente, el PNG lo conservará con bordes nítidos.',
32
- },
33
- {
34
- question: '¿Mantienes mis imágenes en los servidores un tiempo tras el procesamiento?',
35
- answer:
36
- 'Ningún servidor retiene tu GIF; toda la extracción es local debido al Canvas Web API. Es el procesador de tu PC quien decodifica de forma segura tu archivo sin contacto con red alguna.',
37
- },
38
- ];
39
-
40
- const howTo: GifAPngLocaleContent['howTo'] = [
41
- {
42
- name: 'Acércanos la Animación',
43
- text: 'Pasa los pesados archivos GIF en el recuadro de inserción.',
44
- },
45
- {
46
- name: 'Foto Extraída Perfecta',
47
- text: 'El sistema paralizará al origen exacto del movimiento, sacando la copia impecable en milisegundos.',
48
- },
49
- {
50
- name: 'Guarda tu Estático',
51
- text: 'Almacena masivamente en ZIP todo aquel volumen de avatares GIFs estáticos convertidos a PNG.',
52
- },
53
- ];
54
-
55
- const seo: GifAPngLocaleContent['seo'] = [
56
- {
57
- type: 'title',
58
- text: 'Convertidor de GIF a PNG: Supera los Límites de Color y Transparencia del GIF',
59
- level: 2,
60
- },
61
- {
62
- type: 'paragraph',
63
- html: 'El GIF fue diseñado en una época en que los monitores apenas podían mostrar 256 colores. Décadas después, esa limitación sigue siendo su mayor debilidad. El PNG nació precisamente para reemplazar al GIF en todos los casos de uso donde la calidad y la transparencia importan: logos, iconos, gráficos de interfaz y cualquier imagen con fondo transparente que deba lucir perfecta sobre cualquier color de fondo.',
64
- },
65
- {
66
- type: 'title',
67
- text: 'GIF vs PNG: la revolución de los 16 millones de colores',
68
- level: 3,
69
- },
70
- {
71
- type: 'paragraph',
72
- html: 'La diferencia más crítica entre GIF y PNG no es solo el número de colores. El GIF soporta transparencia binaria: cada píxel es opaco o completamente transparente, sin gradaciones. El PNG, en cambio, soporta canal alfa completo, con 256 niveles de opacidad por píxel. Esto significa que los bordes de un logo en PNG pueden ser perfectamente suavizados, mientras que los del GIF muestran un dentado característico sobre fondos de colores.',
73
- },
74
- {
75
- type: 'paragraph',
76
- html: 'Además de la transparencia superior, el PNG elimina el límite de 256 colores del GIF. Capturas de pantalla, ilustraciones con degradados, logotipos con sombras: todos se ven significativamente mejor en PNG. Y al ser compresión sin pérdida, cada píxel conserva exactamente el valor original, sin los artefactos que introduciría una conversión a JPG.',
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: 'Herramientas que procesan tus imágenes en servidores remotos.',
89
- icon: 'mdi:cloud-upload',
90
- pointIcon: 'mdi:close-circle-outline',
91
- points: [
92
- 'Tus logos e iconos viajan por internet',
93
- 'Tiempo de espera por latencia de red',
94
- 'Límites de tamaño y número de archivos',
95
- 'Tus imágenes pueden quedar en cachés de terceros',
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 GIF nunca abandona tu dispositivo',
105
- 'Conversión instantánea sin red',
106
- 'Sin límites de archivos ni de tamaño',
107
- 'Privacidad absoluta: 0 bytes enviados',
108
- ],
109
- },
110
- ],
111
- },
112
- {
113
- type: 'title',
114
- text: 'Cómo funciona la conversión local GIF a PNG',
115
- level: 3,
116
- },
117
- {
118
- type: 'paragraph',
119
- html: 'La conversión utiliza el Canvas API del navegador. El GIF se decodifica en memoria como un elemento Image nativo. Al renderizarlo sobre un canvas HTML5, el motor gráfico del navegador captura el primer fotograma con toda su información de transparencia original intacta.',
120
- },
121
- {
122
- type: 'paragraph',
123
- html: 'A diferencia de la conversión a JPG, con PNG no es necesario añadir un fondo blanco. El canal alfa del GIF original se preserva directamente en el PNG exportado. El método <code>toDataURL(\'image/png\')</code> genera el flujo de bytes PNG en la RAM de tu ordenador, sin ninguna transmisión de red, y el archivo se descarga directamente.',
124
- },
125
- {
126
- type: 'tip',
127
- title: 'Transparencia binaria del GIF vs canal alfa del PNG',
128
- html: 'El GIF solo soporta transparencia binaria (opaco o transparente). Al convertir a PNG, los píxeles semi-transparentes del GIF se mantienen tal como el navegador los interpreta. Si tu GIF tiene bordes dentados, el PNG los conservará - pero podrás editarlos con suavizado de bordes en cualquier editor, algo imposible con el GIF original.',
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
- 'Logos e iconos para uso sobre cualquier color de fondo.',
140
- 'Avatares para Discord, Telegram, Slack y plataformas de gaming.',
141
- 'Gráficos de interfaz para aplicaciones web y móviles.',
142
- 'Stickers y emojis personalizados con fondo transparente.',
143
- 'Capturas de pantalla y elementos UI para documentación técnica.',
144
- ],
145
- },
146
- {
147
- type: 'title',
148
- text: 'Conclusión: PNG es lo que el GIF siempre quiso ser',
149
- level: 3,
150
- },
151
- {
152
- type: 'paragraph',
153
- html: 'Convertir de GIF a PNG no es solo cambiar de formato: es actualizar una imagen al estándar moderno que el GIF nunca pudo alcanzar. Más colores, mejor transparencia, menos peso. Nuestra herramienta realiza esta conversión en milisegundos, directamente en tu navegador, sin enviar ningún dato al exterior.',
154
- },
155
- ];
156
-
18
+ bibliographyTitle: 'Referencias Bibliográficas',
19
+ faqTitle: 'Preguntas Frecuentes',
20
+ };
21
+
22
+ const faq: GifAPngLocaleContent['faq'] = [
23
+ {
24
+ question: '¿Por qué convertir un formato animado como GIF a un formato estático como PNG?',
25
+ answer:
26
+ 'Muchas redes sociales o avatares no admiten fotografías que cambian. Extraer el primer cuadro de un GIF complejo hacia un PNG de alta calidad soluciona las barreras y reduce pesos inservibles.',
27
+ },
28
+ {
29
+ question: '¿Se conservan las transparencias del viejo GIF en el PNG resultante?',
30
+ answer:
31
+ 'Sí, a diferencia del JPG, el formato PNG mantiene el canal alfa. Si el GIF tenía un fondo transparente, el PNG lo conservará con bordes nítidos.',
32
+ },
33
+ {
34
+ question: '¿Mantienes mis imágenes en los servidores un tiempo tras el procesamiento?',
35
+ answer:
36
+ 'Ningún servidor retiene tu GIF; toda la extracción es local debido al Canvas Web API. Es el procesador de tu PC quien decodifica de forma segura tu archivo sin contacto con red alguna.',
37
+ },
38
+ ];
39
+
40
+ const howTo: GifAPngLocaleContent['howTo'] = [
41
+ {
42
+ name: 'Acércanos la Animación',
43
+ text: 'Pasa los pesados archivos GIF en el recuadro de inserción.',
44
+ },
45
+ {
46
+ name: 'Foto Extraída Perfecta',
47
+ text: 'El sistema paralizará al origen exacto del movimiento, sacando la copia impecable en milisegundos.',
48
+ },
49
+ {
50
+ name: 'Guarda tu Estático',
51
+ text: 'Almacena masivamente en ZIP todo aquel volumen de avatares GIFs estáticos convertidos a PNG.',
52
+ },
53
+ ];
54
+
55
+ const seo: GifAPngLocaleContent['seo'] = [
56
+ {
57
+ type: 'title',
58
+ text: 'Convertidor de GIF a PNG: Supera los Límites de Color y Transparencia del GIF',
59
+ level: 2,
60
+ },
61
+ {
62
+ type: 'paragraph',
63
+ html: 'El GIF fue diseñado en una época en que los monitores apenas podían mostrar 256 colores. Décadas después, esa limitación sigue siendo su mayor debilidad. El PNG nació precisamente para reemplazar al GIF en todos los casos de uso donde la calidad y la transparencia importan: logos, iconos, gráficos de interfaz y cualquier imagen con fondo transparente que deba lucir perfecta sobre cualquier color de fondo.',
64
+ },
65
+ {
66
+ type: 'title',
67
+ text: 'GIF vs PNG: la revolución de los 16 millones de colores',
68
+ level: 3,
69
+ },
70
+ {
71
+ type: 'paragraph',
72
+ html: 'La diferencia más crítica entre GIF y PNG no es solo el número de colores. El GIF soporta transparencia binaria: cada píxel es opaco o completamente transparente, sin gradaciones. El PNG, en cambio, soporta canal alfa completo, con 256 niveles de opacidad por píxel. Esto significa que los bordes de un logo en PNG pueden ser perfectamente suavizados, mientras que los del GIF muestran un dentado característico sobre fondos de colores.',
73
+ },
74
+ {
75
+ type: 'paragraph',
76
+ html: 'Además de la transparencia superior, el PNG elimina el límite de 256 colores del GIF. Capturas de pantalla, ilustraciones con degradados, logotipos con sombras: todos se ven significativamente mejor en PNG. Y al ser compresión sin pérdida, cada píxel conserva exactamente el valor original, sin los artefactos que introduciría una conversión a JPG.',
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: 'Herramientas que procesan tus imágenes en servidores remotos.',
89
+ icon: 'mdi:cloud-upload',
90
+ pointIcon: 'mdi:close-circle-outline',
91
+ points: [
92
+ 'Tus logos e iconos viajan por internet',
93
+ 'Tiempo de espera por latencia de red',
94
+ 'Límites de tamaño y número de archivos',
95
+ 'Tus imágenes pueden quedar en cachés de terceros',
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 GIF nunca abandona tu dispositivo',
105
+ 'Conversión instantánea sin red',
106
+ 'Sin límites de archivos ni de tamaño',
107
+ 'Privacidad absoluta: 0 bytes enviados',
108
+ ],
109
+ },
110
+ ],
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Cómo funciona la conversión local GIF a PNG',
115
+ level: 3,
116
+ },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'La conversión utiliza el Canvas API del navegador. El GIF se decodifica en memoria como un elemento Image nativo. Al renderizarlo sobre un canvas HTML5, el motor gráfico del navegador captura el primer fotograma con toda su información de transparencia original intacta.',
120
+ },
121
+ {
122
+ type: 'paragraph',
123
+ html: 'A diferencia de la conversión a JPG, con PNG no es necesario añadir un fondo blanco. El canal alfa del GIF original se preserva directamente en el PNG exportado. El método <code>toDataURL(\'image/png\')</code> genera el flujo de bytes PNG en la RAM de tu ordenador, sin ninguna transmisión de red, y el archivo se descarga directamente.',
124
+ },
125
+ {
126
+ type: 'tip',
127
+ title: 'Transparencia binaria del GIF vs canal alfa del PNG',
128
+ html: 'El GIF solo soporta transparencia binaria (opaco o transparente). Al convertir a PNG, los píxeles semi-transparentes del GIF se mantienen tal como el navegador los interpreta. Si tu GIF tiene bordes dentados, el PNG los conservará - pero podrás editarlos con suavizado de bordes en cualquier editor, algo imposible con el GIF original.',
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
+ 'Logos e iconos para uso sobre cualquier color de fondo.',
140
+ 'Avatares para Discord, Telegram, Slack y plataformas de gaming.',
141
+ 'Gráficos de interfaz para aplicaciones web y móviles.',
142
+ 'Stickers y emojis personalizados con fondo transparente.',
143
+ 'Capturas de pantalla y elementos UI para documentación técnica.',
144
+ ],
145
+ },
146
+ {
147
+ type: 'title',
148
+ text: 'Conclusión: PNG es lo que el GIF siempre quiso ser',
149
+ level: 3,
150
+ },
151
+ {
152
+ type: 'paragraph',
153
+ html: 'Convertir de GIF a PNG no es solo cambiar de formato: es actualizar una imagen al estándar moderno que el GIF nunca pudo alcanzar. Más colores, mejor transparencia, menos peso. Nuestra herramienta realiza esta conversión en milisegundos, directamente en tu navegador, sin enviar ningún dato al exterior.',
154
+ },
155
+ ];
157
156
 
158
- export const content: GifAPngLocaleContent = {
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: GifAPngLocaleContent = {
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
+ };