@jjlmoya/utils-converters 1.1.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.
- package/package.json +61 -0
- package/src/category/i18n/en.ts +90 -0
- package/src/category/i18n/es.ts +90 -0
- package/src/category/i18n/fr.ts +90 -0
- package/src/category/index.ts +39 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +152 -0
- package/src/data.ts +34 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +39 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +148 -0
- package/src/pages/[locale].astro +271 -0
- package/src/pages/index.astro +4 -0
- package/src/shared/ImageConverter.astro +237 -0
- package/src/shared/logic/converter.ts +167 -0
- package/src/shared/style.css +258 -0
- package/src/tests/faq_count.test.ts +10 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/avifAJpg/bibliography.astro +14 -0
- package/src/tool/avifAJpg/component.astro +8 -0
- package/src/tool/avifAJpg/i18n/en.ts +123 -0
- package/src/tool/avifAJpg/i18n/es.ts +123 -0
- package/src/tool/avifAJpg/i18n/fr.ts +118 -0
- package/src/tool/avifAJpg/index.ts +29 -0
- package/src/tool/avifAJpg/seo.astro +14 -0
- package/src/tool/avifAPng/bibliography.astro +14 -0
- package/src/tool/avifAPng/component.astro +8 -0
- package/src/tool/avifAPng/i18n/en.ts +118 -0
- package/src/tool/avifAPng/i18n/es.ts +123 -0
- package/src/tool/avifAPng/i18n/fr.ts +118 -0
- package/src/tool/avifAPng/index.ts +29 -0
- package/src/tool/avifAPng/seo.astro +14 -0
- package/src/tool/avifAWebp/bibliography.astro +14 -0
- package/src/tool/avifAWebp/component.astro +8 -0
- package/src/tool/avifAWebp/i18n/en.ts +118 -0
- package/src/tool/avifAWebp/i18n/es.ts +123 -0
- package/src/tool/avifAWebp/i18n/fr.ts +118 -0
- package/src/tool/avifAWebp/index.ts +29 -0
- package/src/tool/avifAWebp/seo.astro +14 -0
- package/src/tool/bmpAJpg/bibliography.astro +14 -0
- package/src/tool/bmpAJpg/component.astro +8 -0
- package/src/tool/bmpAJpg/i18n/en.ts +123 -0
- package/src/tool/bmpAJpg/i18n/es.ts +123 -0
- package/src/tool/bmpAJpg/i18n/fr.ts +118 -0
- package/src/tool/bmpAJpg/index.ts +29 -0
- package/src/tool/bmpAJpg/seo.astro +14 -0
- package/src/tool/bmpAPng/bibliography.astro +14 -0
- package/src/tool/bmpAPng/component.astro +8 -0
- package/src/tool/bmpAPng/i18n/en.ts +123 -0
- package/src/tool/bmpAPng/i18n/es.ts +123 -0
- package/src/tool/bmpAPng/i18n/fr.ts +118 -0
- package/src/tool/bmpAPng/index.ts +29 -0
- package/src/tool/bmpAPng/seo.astro +14 -0
- package/src/tool/bmpAWebp/bibliography.astro +14 -0
- package/src/tool/bmpAWebp/component.astro +8 -0
- package/src/tool/bmpAWebp/i18n/en.ts +118 -0
- package/src/tool/bmpAWebp/i18n/es.ts +123 -0
- package/src/tool/bmpAWebp/i18n/fr.ts +118 -0
- package/src/tool/bmpAWebp/index.ts +29 -0
- package/src/tool/bmpAWebp/seo.astro +14 -0
- package/src/tool/gifAJpg/bibliography.astro +14 -0
- package/src/tool/gifAJpg/component.astro +8 -0
- package/src/tool/gifAJpg/i18n/en.ts +123 -0
- package/src/tool/gifAJpg/i18n/es.ts +123 -0
- package/src/tool/gifAJpg/i18n/fr.ts +118 -0
- package/src/tool/gifAJpg/index.ts +29 -0
- package/src/tool/gifAJpg/seo.astro +14 -0
- package/src/tool/gifAPng/bibliography.astro +14 -0
- package/src/tool/gifAPng/component.astro +8 -0
- package/src/tool/gifAPng/i18n/en.ts +123 -0
- package/src/tool/gifAPng/i18n/es.ts +123 -0
- package/src/tool/gifAPng/i18n/fr.ts +118 -0
- package/src/tool/gifAPng/index.ts +29 -0
- package/src/tool/gifAPng/seo.astro +14 -0
- package/src/tool/gifAWebp/bibliography.astro +14 -0
- package/src/tool/gifAWebp/component.astro +8 -0
- package/src/tool/gifAWebp/i18n/en.ts +123 -0
- package/src/tool/gifAWebp/i18n/es.ts +123 -0
- package/src/tool/gifAWebp/i18n/fr.ts +118 -0
- package/src/tool/gifAWebp/index.ts +29 -0
- package/src/tool/gifAWebp/seo.astro +14 -0
- package/src/tool/imagenBase64/bibliography.astro +14 -0
- package/src/tool/imagenBase64/component.astro +159 -0
- package/src/tool/imagenBase64/i18n/en.ts +137 -0
- package/src/tool/imagenBase64/i18n/es.ts +137 -0
- package/src/tool/imagenBase64/i18n/fr.ts +132 -0
- package/src/tool/imagenBase64/index.ts +43 -0
- package/src/tool/imagenBase64/seo.astro +14 -0
- package/src/tool/imagenBase64/style.css +299 -0
- package/src/tool/jpgAIco/bibliography.astro +14 -0
- package/src/tool/jpgAIco/component.astro +8 -0
- package/src/tool/jpgAIco/i18n/en.ts +123 -0
- package/src/tool/jpgAIco/i18n/es.ts +123 -0
- package/src/tool/jpgAIco/i18n/fr.ts +118 -0
- package/src/tool/jpgAIco/index.ts +29 -0
- package/src/tool/jpgAIco/seo.astro +14 -0
- package/src/tool/jpgAPng/bibliography.astro +14 -0
- package/src/tool/jpgAPng/component.astro +8 -0
- package/src/tool/jpgAPng/i18n/en.ts +128 -0
- package/src/tool/jpgAPng/i18n/es.ts +128 -0
- package/src/tool/jpgAPng/i18n/fr.ts +123 -0
- package/src/tool/jpgAPng/index.ts +29 -0
- package/src/tool/jpgAPng/seo.astro +14 -0
- package/src/tool/jpgAWebp/bibliography.astro +14 -0
- package/src/tool/jpgAWebp/component.astro +8 -0
- package/src/tool/jpgAWebp/i18n/en.ts +118 -0
- package/src/tool/jpgAWebp/i18n/es.ts +123 -0
- package/src/tool/jpgAWebp/i18n/fr.ts +118 -0
- package/src/tool/jpgAWebp/index.ts +29 -0
- package/src/tool/jpgAWebp/seo.astro +14 -0
- package/src/tool/pngAIco/bibliography.astro +14 -0
- package/src/tool/pngAIco/component.astro +8 -0
- package/src/tool/pngAIco/i18n/en.ts +123 -0
- package/src/tool/pngAIco/i18n/es.ts +123 -0
- package/src/tool/pngAIco/i18n/fr.ts +118 -0
- package/src/tool/pngAIco/index.ts +29 -0
- package/src/tool/pngAIco/seo.astro +14 -0
- package/src/tool/pngAJpg/bibliography.astro +14 -0
- package/src/tool/pngAJpg/component.astro +8 -0
- package/src/tool/pngAJpg/i18n/en.ts +133 -0
- package/src/tool/pngAJpg/i18n/es.ts +201 -0
- package/src/tool/pngAJpg/i18n/fr.ts +128 -0
- package/src/tool/pngAJpg/index.ts +29 -0
- package/src/tool/pngAJpg/seo.astro +14 -0
- package/src/tool/pngAWebp/bibliography.astro +14 -0
- package/src/tool/pngAWebp/component.astro +8 -0
- package/src/tool/pngAWebp/i18n/en.ts +127 -0
- package/src/tool/pngAWebp/i18n/es.ts +132 -0
- package/src/tool/pngAWebp/i18n/fr.ts +122 -0
- package/src/tool/pngAWebp/index.ts +29 -0
- package/src/tool/pngAWebp/seo.astro +14 -0
- package/src/tool/svgAJpg/bibliography.astro +14 -0
- package/src/tool/svgAJpg/component.astro +8 -0
- package/src/tool/svgAJpg/i18n/en.ts +118 -0
- package/src/tool/svgAJpg/i18n/es.ts +123 -0
- package/src/tool/svgAJpg/i18n/fr.ts +118 -0
- package/src/tool/svgAJpg/index.ts +29 -0
- package/src/tool/svgAJpg/seo.astro +14 -0
- package/src/tool/svgAPng/bibliography.astro +14 -0
- package/src/tool/svgAPng/component.astro +8 -0
- package/src/tool/svgAPng/i18n/en.ts +123 -0
- package/src/tool/svgAPng/i18n/es.ts +128 -0
- package/src/tool/svgAPng/i18n/fr.ts +118 -0
- package/src/tool/svgAPng/index.ts +29 -0
- package/src/tool/svgAPng/seo.astro +14 -0
- package/src/tool/webpAIco/bibliography.astro +14 -0
- package/src/tool/webpAIco/component.astro +8 -0
- package/src/tool/webpAIco/i18n/en.ts +123 -0
- package/src/tool/webpAIco/i18n/es.ts +123 -0
- package/src/tool/webpAIco/i18n/fr.ts +118 -0
- package/src/tool/webpAIco/index.ts +29 -0
- package/src/tool/webpAIco/seo.astro +14 -0
- package/src/tool/webpAJpg/bibliography.astro +14 -0
- package/src/tool/webpAJpg/component.astro +8 -0
- package/src/tool/webpAJpg/i18n/en.ts +122 -0
- package/src/tool/webpAJpg/i18n/es.ts +127 -0
- package/src/tool/webpAJpg/i18n/fr.ts +122 -0
- package/src/tool/webpAJpg/index.ts +29 -0
- package/src/tool/webpAJpg/seo.astro +14 -0
- package/src/tool/webpAPng/bibliography.astro +14 -0
- package/src/tool/webpAPng/component.astro +8 -0
- package/src/tool/webpAPng/i18n/en.ts +127 -0
- package/src/tool/webpAPng/i18n/es.ts +132 -0
- package/src/tool/webpAPng/i18n/fr.ts +122 -0
- package/src/tool/webpAPng/index.ts +29 -0
- package/src/tool/webpAPng/seo.astro +14 -0
- package/src/tools.ts +70 -0
- package/src/types.ts +69 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { WebpAJpgLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertidor-webp-a-jpg';
|
|
6
|
+
const title = 'Convertir WebP a JPG Online y Gratis - Sin Subir a Internet';
|
|
7
|
+
const description =
|
|
8
|
+
'Convierte imágenes WebP a JPG sin subir archivos. Procesamiento local 100% privado. Los fondos transparentes se sustituyen por blanco automáticamente.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arrastra archivos WebP...',
|
|
12
|
+
convertText: 'Para convertirlos a JPG al instante',
|
|
13
|
+
selectFiles: 'Seleccionar archivos',
|
|
14
|
+
processedFiles: 'Archivos procesados',
|
|
15
|
+
downloadAll: 'Descargar Todo (.zip)',
|
|
16
|
+
pending: 'Pendiente',
|
|
17
|
+
bibliographyTitle: 'Referencias Bibliográficas',
|
|
18
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '¿Puedo subir imágenes privadas de forma segura?',
|
|
24
|
+
answer:
|
|
25
|
+
'Sí. No hay un servidor de subida. Tu navegador procesa el WebP en tu ordenador y genera el JPG para que lo descargues. Nadie más lo ve.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '¿Qué ocurre con el fondo de mi WebP si es transparente?',
|
|
29
|
+
answer:
|
|
30
|
+
'Como el formato JPG no soporta transparencias, el convertidor rellenará automáticamente las zonas transparentes con un fondo blanco sólido.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '¿Hay límite de conversiones o tamaño?',
|
|
34
|
+
answer:
|
|
35
|
+
'No imponemos restricciones. Puedes convertir cientos de imágenes siempre que tu ordenador tenga la potencia y la memoria RAM suficiente.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAJpgLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Arrastra tus Archivos',
|
|
42
|
+
text: 'Pega tus WebP modernos al área de carga o selecciónalos usando el explorador de archivos interactivo.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Conversión Local',
|
|
46
|
+
text: 'Disfruta mientras el motor local de la utilidad aplica un fondo e interpreta cada píxel al universal JPG.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Obtén tus Resultados',
|
|
50
|
+
text: 'Descarga individualmente o usa el paquete ZIP para consolidar todas tus nuevas fotografías.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'JPEG.org: The JPEG standards',
|
|
57
|
+
url: 'https://jpeg.org/jpeg/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla Developer Network - image/jpeg',
|
|
61
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types#jpeg',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'WebP to JPEG compatibility',
|
|
65
|
+
url: 'https://developers.google.com/speed/webp/faq',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: WebpAJpgLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Convertidor WebP a JPG Online Gratuito',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html:
|
|
77
|
+
'El formato WebP es el estándar moderno de Google para imágenes web, pero su compatibilidad con software antiguo y dispositivos más limitados puede ser problemática. Convertir WebP a JPG garantiza que tus imágenes puedan ser abiertas por prácticamente cualquier programa, dispositivo o plataforma del mundo, ya que JPG es el formato fotográfico más universalmente soportado.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html:
|
|
82
|
+
'Un aspecto técnico importante a considerar es el manejo de las transparencias. El formato JPG no soporta el canal alfa, por lo que cualquier área transparente presente en el archivo WebP original será sustituida automáticamente por un fondo blanco sólido durante la conversión. Si necesitas preservar la transparencia, considera usar el formato PNG como destino en su lugar.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html:
|
|
87
|
+
'La conversión se realiza completamente en tu navegador mediante JavaScript y el Canvas API de HTML5. No se requiere ninguna instalación de software adicional y los archivos nunca se envían a ningún servidor externo, lo que garantiza una privacidad total para imágenes personales, corporativas o de cualquier naturaleza sensible.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'tip',
|
|
91
|
+
html:
|
|
92
|
+
'Para mejores resultados, convierte WebP a JPG cuando necesites compartir fotos por email o redes sociales donde el tamaño importa. Si necesitas transparencia, usa WebP a PNG en su lugar.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html:
|
|
97
|
+
'El formato JPG tiene una compatibilidad del 100% entre todos los navegadores, sistemas operativos y dispositivos, mientras que WebP puede no ser compatible con algunos lectores de imágenes y editores más antiguos.',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'paragraph',
|
|
101
|
+
html:
|
|
102
|
+
'Convierte WebP a JPG de forma local, gratuita y sin límites. Sin servidores, sin registro, compatible con todos tus dispositivos y archivos.',
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
107
|
+
'@context': 'https://schema.org',
|
|
108
|
+
'@type': 'SoftwareApplication',
|
|
109
|
+
name: title,
|
|
110
|
+
description,
|
|
111
|
+
applicationCategory: 'UtilitiesApplication',
|
|
112
|
+
operatingSystem: 'Web',
|
|
113
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
114
|
+
inLanguage: 'es',
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export const content: WebpAJpgLocaleContent = {
|
|
118
|
+
slug,
|
|
119
|
+
title,
|
|
120
|
+
description,
|
|
121
|
+
ui,
|
|
122
|
+
seo,
|
|
123
|
+
faq,
|
|
124
|
+
bibliography,
|
|
125
|
+
howTo,
|
|
126
|
+
schemas: [appSchema as any],
|
|
127
|
+
};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { WebpAJpgLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertisseur-webp-en-jpg';
|
|
6
|
+
const title = 'Convertir WebP en JPG en Ligne et Gratuitement - Sans Téléchargement';
|
|
7
|
+
const description =
|
|
8
|
+
'Convertissez des images WebP en JPG sans télécharger de fichiers. Traitement local 100% privé. Les fonds transparents sont automatiquement remplacés par du blanc.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Faites glisser des fichiers WebP...',
|
|
12
|
+
convertText: 'Pour les convertir en JPG instantanément',
|
|
13
|
+
selectFiles: 'Sélectionner des fichiers',
|
|
14
|
+
processedFiles: 'Fichiers traités',
|
|
15
|
+
downloadAll: 'Tout télécharger (.zip)',
|
|
16
|
+
pending: 'En attente',
|
|
17
|
+
bibliographyTitle: 'Références Bibliographiques',
|
|
18
|
+
faqTitle: 'Questions Fréquentes',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAJpgLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Puis-je télécharger des images privées en toute sécurité ?',
|
|
24
|
+
answer:
|
|
25
|
+
'Oui. Il n\'y a pas de serveur de téléchargement. Votre navigateur traite le WebP sur votre ordinateur et génère le JPG à télécharger. Personne d\'autre ne le voit.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Que se passe-t-il avec le fond de mon WebP s\'il est transparent ?',
|
|
29
|
+
answer:
|
|
30
|
+
'Comme le JPG ne supporte pas la transparence, le convertisseur remplira automatiquement les zones transparentes avec un fond blanc solide.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Y a-t-il une limite aux conversions ou à la taille des fichiers ?',
|
|
34
|
+
answer:
|
|
35
|
+
'Nous n\'imposons aucune restriction. Vous pouvez convertir des centaines d\'images tant que votre ordinateur dispose de la puissance de traitement et de la RAM suffisantes.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAJpgLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Faites glisser vos fichiers',
|
|
42
|
+
text: 'Déposez vos fichiers WebP modernes dans la zone de téléchargement ou sélectionnez-les à l\'aide du navigateur de fichiers interactif.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Conversion locale',
|
|
46
|
+
text: 'Observez le moteur local appliquer un fond et interpréter chaque pixel au format JPG universel.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Obtenez vos résultats',
|
|
50
|
+
text: 'Téléchargez individuellement ou utilisez le package ZIP pour consolider toutes vos nouvelles photographies.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAJpgLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'JPEG.org: Les standards JPEG',
|
|
57
|
+
url: 'https://jpeg.org/jpeg/',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Mozilla Developer Network - image/jpeg',
|
|
61
|
+
url: 'https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types#jpeg',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Compatibilité WebP vers JPEG',
|
|
65
|
+
url: 'https://developers.google.com/speed/webp/faq',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: WebpAJpgLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Convertisseur WebP vers JPG en Ligne Gratuit',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html:
|
|
77
|
+
'WebP est le standard d\'image web moderne de Google, mais sa compatibilité avec les logiciels plus anciens peut être problématique. Convertir WebP en JPG garantit que vos images peuvent être ouvertes par pratiquement n\'importe quel programme, appareil ou plateforme, car JPG est le format photographique le plus universellement supporté.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html:
|
|
82
|
+
'Un aspect technique important à considérer est la gestion de la transparence. Le format JPG ne prend pas en charge le canal alpha, donc toute zone transparente dans le fichier WebP original sera automatiquement remplacée par un fond blanc solide lors de la conversion.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'tip',
|
|
86
|
+
html:
|
|
87
|
+
'Pour de meilleurs résultats, convertissez WebP en JPG lorsque vous devez partager des photos par e-mail ou réseaux sociaux où la taille est importante. Si vous avez besoin de transparence, utilisez WebP vers PNG.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html:
|
|
92
|
+
'Le format JPG a une compatibilité de 100% sur tous les navigateurs, systèmes d\'exploitation et appareils, tandis que WebP peut ne pas être compatible avec certains visionneuses d\'images et éditeurs plus anciens.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html:
|
|
97
|
+
'Convertissez WebP en JPG localement, gratuitement et sans limites. Sans serveurs, sans inscription, compatible avec tous vos appareils et fichiers.',
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
|
|
101
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
102
|
+
'@context': 'https://schema.org',
|
|
103
|
+
'@type': 'SoftwareApplication',
|
|
104
|
+
name: title,
|
|
105
|
+
description,
|
|
106
|
+
applicationCategory: 'UtilitiesApplication',
|
|
107
|
+
operatingSystem: 'Web',
|
|
108
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
109
|
+
inLanguage: 'fr',
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export const content: WebpAJpgLocaleContent = {
|
|
113
|
+
slug,
|
|
114
|
+
title,
|
|
115
|
+
description,
|
|
116
|
+
ui,
|
|
117
|
+
seo,
|
|
118
|
+
faq,
|
|
119
|
+
bibliography,
|
|
120
|
+
howTo,
|
|
121
|
+
schemas: [appSchema as any],
|
|
122
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ConvertersToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
|
|
2
|
+
import type { ImageConverterUI } from '../../shared/ImageConverter.astro';
|
|
3
|
+
import WebpAJpgCalculator from './component.astro';
|
|
4
|
+
import WebpAJpgSEO from './seo.astro';
|
|
5
|
+
import WebpAJpgBibliography from './bibliography.astro';
|
|
6
|
+
|
|
7
|
+
export type WebpAJpgLocaleContent = ToolLocaleContent<ImageConverterUI>;
|
|
8
|
+
|
|
9
|
+
export const webpAJpg: ConvertersToolEntry<ImageConverterUI> = {
|
|
10
|
+
id: 'webp-a-jpg',
|
|
11
|
+
icons: {
|
|
12
|
+
bg: 'mdi:file-image',
|
|
13
|
+
fg: 'mdi:file-export',
|
|
14
|
+
},
|
|
15
|
+
i18n: {
|
|
16
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
17
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
18
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export { WebpAJpgCalculator, WebpAJpgSEO, WebpAJpgBibliography };
|
|
23
|
+
|
|
24
|
+
export const WEBP_A_JPG_TOOL: ToolDefinition = {
|
|
25
|
+
entry: webpAJpg,
|
|
26
|
+
Component: WebpAJpgCalculator,
|
|
27
|
+
SEOComponent: WebpAJpgSEO,
|
|
28
|
+
BibliographyComponent: WebpAJpgBibliography,
|
|
29
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { webpAJpg } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await webpAJpg.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { webpAPng } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await webpAPng.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SharedBibliography links={content.bibliography} title={content.ui.bibliographyTitle} />}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
import SharedImageConverter from '../../shared/ImageConverter.astro';
|
|
3
|
+
import type { ImageConverterUI } from '../../shared/ImageConverter.astro';
|
|
4
|
+
|
|
5
|
+
interface Props { ui: ImageConverterUI }
|
|
6
|
+
const { ui } = Astro.props;
|
|
7
|
+
---
|
|
8
|
+
<SharedImageConverter from="webp" to="png" ui={ui} />
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { WebpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'webp-to-png-converter';
|
|
6
|
+
const title = 'Convert WebP to PNG Online and Free - 100% Private';
|
|
7
|
+
const description =
|
|
8
|
+
'Convert WebP images to PNG in your browser. Preserves transparency. No file uploads to servers. Free and 100% private.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Drag WebP files...',
|
|
12
|
+
convertText: 'To convert them to PNG instantly',
|
|
13
|
+
selectFiles: 'Select files',
|
|
14
|
+
processedFiles: 'Processed files',
|
|
15
|
+
downloadAll: 'Download All (.zip)',
|
|
16
|
+
pending: 'Pending',
|
|
17
|
+
bibliographyTitle: 'Bibliographic References',
|
|
18
|
+
faqTitle: 'Frequently Asked Questions',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Why do I need to convert my WebP files to PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'Despite being lighter, WebP files can cause incompatibilities in editing programs like older Photoshop. PNG ensures 100% universal compatibility.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Are transparencies lost when converting from WebP to PNG?',
|
|
29
|
+
answer:
|
|
30
|
+
'Not at all. Unlike conversion to JPG, PNG supports the alpha channel. Our utility will preserve any transparent area from the original file.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Can I upload confidential company files?',
|
|
34
|
+
answer:
|
|
35
|
+
'You can and should. Since everything runs locally via JavaScript, your company images will never leave your computer or be stored on external servers.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Drag your WebP files',
|
|
42
|
+
text: 'Move and drop your WebP files onto the main panel or select the images traditionally.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'High Fidelity Conversion',
|
|
46
|
+
text: 'Your browser will redraw the image pixel by pixel and generate an exact copy in PNG format, maintaining the original color gamut.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Individual or Bulk Download',
|
|
50
|
+
text: 'Save each file individually or, if you processed a batch, click the ZIP button to download them all packaged together.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'WebP API and Library Documentation',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/api',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'HTML Canvas 2D Context Specification',
|
|
61
|
+
url: 'https://html.spec.whatwg.org/multipage/canvas.html',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Can I use: WebP image format',
|
|
65
|
+
url: 'https://caniuse.com/webp',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: WebpAPngLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Free Online WebP to PNG Converter',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html:
|
|
77
|
+
'WebP was developed by Google as a modern alternative to PNG and JPG, offering superior compression with or without quality loss. However, its adoption in professional editing tools like older versions of Photoshop, Illustrator, or specialized image editors can be limited, making it necessary to convert WebP to PNG to ensure universal compatibility.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html:
|
|
82
|
+
'A key advantage of WebP to PNG conversion is the preservation of the alpha channel. Unlike conversion to JPG where transparent backgrounds are filled with white, PNG fully maintains any transparent areas present in the original WebP file. This is especially valuable for logos, icons, illustrations and any graphics with transparency.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'tip',
|
|
86
|
+
html:
|
|
87
|
+
'If your WebP file has transparency and you need to edit it in Photoshop, always convert to PNG rather than JPG to preserve the alpha channel.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'paragraph',
|
|
91
|
+
html:
|
|
92
|
+
'The WebP format can reduce PNG file sizes by up to 26% and JPG files by up to 34%, according to Google\'s official documentation for lossless and lossy images respectively.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html:
|
|
97
|
+
'The tool supports batch conversion. You can drag multiple WebP files simultaneously and download all resulting PNGs in a single compressed ZIP file, saving time when converting entire image collections.',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'paragraph',
|
|
101
|
+
html:
|
|
102
|
+
'Convert WebP to PNG with complete privacy and quality, preserving transparencies. Free, unlimited and processed locally in your browser.',
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
107
|
+
'@context': 'https://schema.org',
|
|
108
|
+
'@type': 'SoftwareApplication',
|
|
109
|
+
name: title,
|
|
110
|
+
description,
|
|
111
|
+
applicationCategory: 'UtilitiesApplication',
|
|
112
|
+
operatingSystem: 'Web',
|
|
113
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
114
|
+
inLanguage: 'en',
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export const content: WebpAPngLocaleContent = {
|
|
118
|
+
slug,
|
|
119
|
+
title,
|
|
120
|
+
description,
|
|
121
|
+
ui,
|
|
122
|
+
seo,
|
|
123
|
+
faq,
|
|
124
|
+
bibliography,
|
|
125
|
+
howTo,
|
|
126
|
+
schemas: [appSchema as any],
|
|
127
|
+
};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { WebpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertidor-webp-a-png';
|
|
6
|
+
const title = 'Convertir WebP a PNG Online y Gratis - Privado al 100%';
|
|
7
|
+
const description =
|
|
8
|
+
'Convierte imágenes WebP a PNG en tu navegador. Conserva la transparencia. Sin subir archivos a servidores. Gratis y 100% privado.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arrastra archivos WebP...',
|
|
12
|
+
convertText: 'Para convertirlos a PNG al instante',
|
|
13
|
+
selectFiles: 'Seleccionar archivos',
|
|
14
|
+
processedFiles: 'Archivos procesados',
|
|
15
|
+
downloadAll: 'Descargar Todo (.zip)',
|
|
16
|
+
pending: 'Pendiente',
|
|
17
|
+
bibliographyTitle: 'Referencias Bibliográficas',
|
|
18
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: WebpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '¿Por qué necesito convertir mis archivos WebP a PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'A pesar de ser más ligeros, los WebP pueden causar incompatibilidades en programas de edición como Photoshop antiguo. El PNG asegura un 100% de compatibilidad universalmente.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '¿Se pierden las transparencias si paso de WebP a PNG?',
|
|
29
|
+
answer:
|
|
30
|
+
'No, 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.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '¿Puedo subir archivos confidenciales de mi empresa?',
|
|
34
|
+
answer:
|
|
35
|
+
'Puedes y debes. Como todo se ejecuta localmente mediante JavaScript, las imágenes de tu empresa nunca saldrán de tu ordenador ni se guardarán en servidores ajenos.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: WebpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Arrastra tus WebP',
|
|
42
|
+
text: 'Mueve y suelta tus archivos WebP sobre el panel principal o selecciona las imágenes de forma tradicional.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Conversión de Alta Fidelidad',
|
|
46
|
+
text: 'Tu navegador redibujará píxel a píxel la imagen y generará su copia exacta en formato PNG, manteniendo la gama de colores original.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Descarga Individual o Masiva',
|
|
50
|
+
text: 'Guarda cada fichero suelto o, si has procesado un lote, haz clic en el botón ZIP para bajarlos todos empaquetados.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: WebpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'WebP API and Library Documentation',
|
|
57
|
+
url: 'https://developers.google.com/speed/webp/docs/api',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'HTML Canvas 2D Context Specification',
|
|
61
|
+
url: 'https://html.spec.whatwg.org/multipage/canvas.html',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'Can I use: WebP image format',
|
|
65
|
+
url: 'https://caniuse.com/webp',
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
const seo: WebpAPngLocaleContent['seo'] = [
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
text: 'Convertidor WebP a PNG Online Gratuito',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
html:
|
|
77
|
+
'El formato WebP fue desarrollado por Google como una alternativa moderna a PNG y JPG, ofreciendo una compresión superior con o sin pérdida de calidad. Sin embargo, su adopción en herramientas de edición profesional como versiones antiguas de Photoshop, Illustrator o editores de imágenes especializados puede ser limitada, lo que hace necesario convertir WebP a PNG para garantizar la compatibilidad universal.',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html:
|
|
82
|
+
'Una ventaja fundamental de la conversión WebP a PNG es la preservación del canal alfa. A diferencia de la conversión a JPG donde los fondos transparentes se rellenan con blanco, el formato PNG mantiene íntegramente cualquier área transparente que tenga el archivo WebP original. Esto es especialmente valioso para logos, iconos, ilustraciones y cualquier gráfico con transparencias.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html:
|
|
87
|
+
'Nuestro convertidor funciona completamente en el lado del cliente. No existe ningún servidor intermediario; el proceso entero ocurre dentro del motor JavaScript de tu navegador. Esto significa que tus imágenes nunca abandonan tu dispositivo, garantizando una privacidad absoluta incluso para material corporativo o confidencial.',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'tip',
|
|
91
|
+
html:
|
|
92
|
+
'Si tu archivo WebP tiene transparencias y necesitas editarlo en Photoshop, convierte siempre a PNG en lugar de JPG para conservar el canal alfa y poder editar la transparencia.',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html:
|
|
97
|
+
'El formato WebP puede reducir el tamaño de los archivos PNG hasta un 26% y los JPG hasta un 34%, según la documentación oficial de Google para imágenes sin pérdida y con pérdida respectivamente.',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'paragraph',
|
|
101
|
+
html:
|
|
102
|
+
'La herramienta soporta la conversión en lote. Puedes arrastrar múltiples archivos WebP simultáneamente y descargar todos los PNG resultantes en un único archivo ZIP comprimido, ahorrando tiempo cuando necesitas convertir colecciones completas de imágenes.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'paragraph',
|
|
106
|
+
html:
|
|
107
|
+
'Convierte WebP a PNG con total privacidad y calidad, preservando transparencias. Gratis, sin límites y procesado localmente en tu navegador.',
|
|
108
|
+
},
|
|
109
|
+
];
|
|
110
|
+
|
|
111
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
112
|
+
'@context': 'https://schema.org',
|
|
113
|
+
'@type': 'SoftwareApplication',
|
|
114
|
+
name: title,
|
|
115
|
+
description,
|
|
116
|
+
applicationCategory: 'UtilitiesApplication',
|
|
117
|
+
operatingSystem: 'Web',
|
|
118
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
119
|
+
inLanguage: 'es',
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export const content: WebpAPngLocaleContent = {
|
|
123
|
+
slug,
|
|
124
|
+
title,
|
|
125
|
+
description,
|
|
126
|
+
ui,
|
|
127
|
+
seo,
|
|
128
|
+
faq,
|
|
129
|
+
bibliography,
|
|
130
|
+
howTo,
|
|
131
|
+
schemas: [appSchema as any],
|
|
132
|
+
};
|