@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,123 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertidor-bmp-a-png';
|
|
6
|
+
const title = 'Convertidor de BMP a PNG | Formato Sin Pérdida Local';
|
|
7
|
+
const description =
|
|
8
|
+
'Convierte imágenes BMP a PNG sin pérdida de calidad. Compresión moderna sin artefactos. Sin subir archivos. Gratis y 100% privado.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arrastra archivos BMP...',
|
|
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: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '¿Cuál es la principal diferencia entre BMP y PNG?',
|
|
24
|
+
answer:
|
|
25
|
+
'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.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '¿Es la conversión realmente privada?',
|
|
29
|
+
answer:
|
|
30
|
+
'Sí. Toda la red fotográfica la hace tu ordenador. Absolutamente nadie accede a tus archivos en tránsito local.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '¿Por qué PNG sobre JPEG en este caso?',
|
|
34
|
+
answer:
|
|
35
|
+
'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.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Acopla tu Fotografía',
|
|
42
|
+
text: 'Mueve tranquilamente los archivos de origen BMP a nuestra zona para soltar elementos web.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Traduce Sin Transmisión de Red',
|
|
46
|
+
text: 'Percibe en apenas un segundo el procesado limpio hecho localmente por tu JS de HTML5.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Consigue PNGs Puros',
|
|
50
|
+
text: 'Baja las réplicas en PNG individualmente o mediante un paquete comprimido.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'PNG Specification W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Convertidor BMP a PNG Online Gratuito',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html:
|
|
73
|
+
'Tanto BMP como PNG son formatos de imagen sin pérdida, lo que significa que no se descarta información visual durante el almacenamiento. Sin embargo, existe una diferencia fundamental en cuanto a eficiencia: BMP almacena los datos de manera cruda sin ningún tipo de compresión, mientras que PNG utiliza el algoritmo de compresión Deflate para reducir el tamaño del archivo sin perder un solo píxel de información.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html:
|
|
78
|
+
'La conversión de BMP a PNG es especialmente útil cuando trabajas con capturas de pantalla, gráficos de interfaz de usuario, diseños con colores planos o cualquier imagen donde la exactitud de color es prioritaria. PNG preservará cada valor de color exactamente igual que el BMP original, pero con un tamaño de archivo considerablemente más pequeño.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html:
|
|
83
|
+
'Nuestro convertidor realiza todo el proceso localmente. El archivo BMP se decodifica en memoria, se dibuja en un canvas HTML5 y se exporta como PNG usando el algoritmo de compresión nativo del navegador. No hay transferencia de datos a servidores externos.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'tip',
|
|
87
|
+
html:
|
|
88
|
+
'Si necesitas máxima compatibilidad con software de edición y precisión de color perfecta, convierte BMP a PNG en lugar de JPG. El PNG lossless garantiza que los colores no se deterioren nunca.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'paragraph',
|
|
92
|
+
html:
|
|
93
|
+
'Un archivo BMP típico de pantalla completa (1920x1080) ocupa unos 6 MB. El mismo contenido en PNG puede ocupar entre 1 y 3 MB, logrando una reducción del 50-85% sin ninguna pérdida de calidad.',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html:
|
|
98
|
+
'Convierte BMP a PNG sin pérdida de calidad, gratuitamente y con total privacidad. La mejor opción para preservar colores exactos con un tamaño de archivo optimizado.',
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
|
|
102
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
103
|
+
'@context': 'https://schema.org',
|
|
104
|
+
'@type': 'SoftwareApplication',
|
|
105
|
+
name: title,
|
|
106
|
+
description,
|
|
107
|
+
applicationCategory: 'UtilitiesApplication',
|
|
108
|
+
operatingSystem: 'Web',
|
|
109
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
110
|
+
inLanguage: 'es',
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const content: BmpAPngLocaleContent = {
|
|
114
|
+
slug,
|
|
115
|
+
title,
|
|
116
|
+
description,
|
|
117
|
+
ui,
|
|
118
|
+
seo,
|
|
119
|
+
faq,
|
|
120
|
+
bibliography,
|
|
121
|
+
howTo,
|
|
122
|
+
schemas: [appSchema as any],
|
|
123
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { BmpAPngLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertisseur-bmp-en-png';
|
|
6
|
+
const title = 'Convertisseur BMP vers PNG | Format Local Sans Perte';
|
|
7
|
+
const description =
|
|
8
|
+
'Convertissez des images BMP en PNG sans perte de qualité. Compression moderne sans artefacts. Sans téléchargement. Gratuit et 100% privé.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Faites glisser des fichiers BMP...',
|
|
12
|
+
convertText: 'Pour les convertir en PNG 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: BmpAPngLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Quelle est la principale différence entre BMP et PNG ?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP et PNG sont tous deux des formats sans perte. La différence réside dans l\'optimisation : PNG utilise des algorithmes de compression modernes pour stocker la même image en occupant 5 à 10 fois moins de mémoire que le BMP.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'La conversion est-elle vraiment privée ?',
|
|
29
|
+
answer:
|
|
30
|
+
'Oui. Tout le traitement photographique est effectué par votre ordinateur. Absolument personne n\'accède à vos fichiers lors du traitement local.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Pourquoi PNG plutôt que JPEG dans ce cas ?',
|
|
34
|
+
answer:
|
|
35
|
+
'Si vous avez un fichier BMP, c\'est parce que l\'image a des couleurs précises. Convertir un BMP au standard destructeur JPG altérerait vos couleurs nettes. Le PNG protège cette fidélité.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAPngLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Chargez votre photo',
|
|
42
|
+
text: 'Déplacez tranquillement les fichiers source BMP dans notre zone de dépôt d\'éléments web.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Traduire sans transmission réseau',
|
|
46
|
+
text: 'Ressentez en à peine une seconde le traitement propre effectué localement par votre JS HTML5.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Obtenez des PNG purs',
|
|
50
|
+
text: 'Téléchargez les répliques PNG individuellement ou via un package compressé.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAPngLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Format de fichier BMP',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Spécification PNG W3C',
|
|
61
|
+
url: 'https://www.w3.org/TR/png/',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAPngLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Convertisseur BMP vers PNG en Ligne Gratuit',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html:
|
|
73
|
+
'BMP et PNG sont tous deux des formats d\'image sans perte, ce qui signifie qu\'aucune information visuelle n\'est jetée lors du stockage. Cependant, il existe une différence fondamentale en termes d\'efficacité : BMP stocke les données brutes sans compression, tandis que PNG utilise l\'algorithme de compression Deflate pour réduire la taille du fichier sans perdre un seul pixel d\'information.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html:
|
|
78
|
+
'La conversion BMP vers PNG est particulièrement utile lors du travail avec des captures d\'écran, des graphiques d\'interface utilisateur, des designs à couleurs plates ou toute image où la précision des couleurs est prioritaire. PNG préservera chaque valeur de couleur exactement comme dans le BMP original, mais avec une taille de fichier considérablement plus petite.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'tip',
|
|
82
|
+
html:
|
|
83
|
+
'Si vous avez besoin d\'une compatibilité maximale avec les logiciels d\'édition et d\'une précision parfaite des couleurs, convertissez BMP en PNG plutôt qu\'en JPG. Le PNG sans perte garantit que les couleurs ne se dégradent jamais.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html:
|
|
88
|
+
'Un BMP plein écran typique (1920x1080) occupe environ 6 Mo. Le même contenu en PNG peut occuper 1 à 3 Mo, soit une réduction de 50 à 85% sans aucune perte de qualité.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'paragraph',
|
|
92
|
+
html:
|
|
93
|
+
'Convertissez BMP en PNG sans perte de qualité, gratuitement et en toute confidentialité. La meilleure option pour préserver des couleurs exactes avec une taille de fichier optimisée.',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
98
|
+
'@context': 'https://schema.org',
|
|
99
|
+
'@type': 'SoftwareApplication',
|
|
100
|
+
name: title,
|
|
101
|
+
description,
|
|
102
|
+
applicationCategory: 'UtilitiesApplication',
|
|
103
|
+
operatingSystem: 'Web',
|
|
104
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
105
|
+
inLanguage: 'fr',
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const content: BmpAPngLocaleContent = {
|
|
109
|
+
slug,
|
|
110
|
+
title,
|
|
111
|
+
description,
|
|
112
|
+
ui,
|
|
113
|
+
seo,
|
|
114
|
+
faq,
|
|
115
|
+
bibliography,
|
|
116
|
+
howTo,
|
|
117
|
+
schemas: [appSchema as any],
|
|
118
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ConvertersToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
|
|
2
|
+
import type { ImageConverterUI } from '../../shared/ImageConverter.astro';
|
|
3
|
+
import BmpAPngCalculator from './component.astro';
|
|
4
|
+
import BmpAPngSEO from './seo.astro';
|
|
5
|
+
import BmpAPngBibliography from './bibliography.astro';
|
|
6
|
+
|
|
7
|
+
export type BmpAPngLocaleContent = ToolLocaleContent<ImageConverterUI>;
|
|
8
|
+
|
|
9
|
+
export const bmpAPng: ConvertersToolEntry<ImageConverterUI> = {
|
|
10
|
+
id: 'bmp-a-png',
|
|
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 { BmpAPngCalculator, BmpAPngSEO, BmpAPngBibliography };
|
|
23
|
+
|
|
24
|
+
export const BMP_A_PNG_TOOL: ToolDefinition = {
|
|
25
|
+
entry: bmpAPng,
|
|
26
|
+
Component: BmpAPngCalculator,
|
|
27
|
+
SEOComponent: BmpAPngSEO,
|
|
28
|
+
BibliographyComponent: BmpAPngBibliography,
|
|
29
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { bmpAPng } 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 bmpAPng.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 { bmpAWebp } 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 bmpAWebp.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="bmp" to="webp" ui={ui} />
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'bmp-to-webp-converter';
|
|
6
|
+
const title = 'Convert BMP to WebP Free | Your Native Offline Compressor';
|
|
7
|
+
const description =
|
|
8
|
+
'Convert BMP images to WebP offline. Reduce huge files to kilobytes. No file uploads. Free, offline and completely private.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Drag BMP files...',
|
|
12
|
+
convertText: 'To convert them to WebP 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: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Why do my BMP files take up 10 times more space and what do I gain with WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP stores uncompressed pixel maps. WebP uses mathematical compression to reduce huge BMPs to under a megabyte while keeping the image highly recognizable.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Do I have to register an account?',
|
|
29
|
+
answer:
|
|
30
|
+
'We require no email and your material will remain isolated, since processing is performed by the JavaScript of the browser installed on your PC, with no remote sending.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Can I drag many files simultaneously?',
|
|
34
|
+
answer:
|
|
35
|
+
'Yes, you can drag 50 or 100 files as long as your hardware can handle processing them all without queuing.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identify raw files',
|
|
42
|
+
text: 'Place your bitmap collections in windows ready for transfer.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Native batch activation',
|
|
46
|
+
text: 'Project or drag all files to our digital workspace.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'WebP batch output',
|
|
50
|
+
text: 'Click the results and get the micro-weight images on disk separately or as immediate compressed packages.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Free Online BMP to WebP Converter',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html:
|
|
73
|
+
'Converting BMP to WebP represents one of the most dramatic size reductions possible between image formats. An uncompressed BMP file can take up 10, 20 or even 50 times more space than its WebP equivalent. Google\'s WebP format uses advanced compression both lossy and lossless, achieving extremely lightweight files that maintain excellent visual quality.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html:
|
|
78
|
+
'The process works completely offline in your browser. BMP files are decoded via the browser\'s native API, rendered on an HTML5 canvas and exported as WebP. No network connection is established during conversion, guaranteeing complete confidentiality of your files.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'tip',
|
|
82
|
+
html:
|
|
83
|
+
'If you have a collection of old Windows BMP images, converting them to WebP is the most efficient way to modernize them for web use while maintaining all their visual quality.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html:
|
|
88
|
+
'A typical desktop screenshot BMP at 1920x1080 can be converted from its original 6 MB to a WebP of between 100 KB and 500 KB, representing reductions of up to 98%.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'paragraph',
|
|
92
|
+
html:
|
|
93
|
+
'Convert BMP to WebP offline, for free and without limits. The most efficient conversion available: from huge uncompressed files to ultra-compressed WebP, with guaranteed total privacy.',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
98
|
+
'@context': 'https://schema.org',
|
|
99
|
+
'@type': 'SoftwareApplication',
|
|
100
|
+
name: title,
|
|
101
|
+
description,
|
|
102
|
+
applicationCategory: 'UtilitiesApplication',
|
|
103
|
+
operatingSystem: 'Web',
|
|
104
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
105
|
+
inLanguage: 'en',
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const content: BmpAWebpLocaleContent = {
|
|
109
|
+
slug,
|
|
110
|
+
title,
|
|
111
|
+
description,
|
|
112
|
+
ui,
|
|
113
|
+
seo,
|
|
114
|
+
faq,
|
|
115
|
+
bibliography,
|
|
116
|
+
howTo,
|
|
117
|
+
schemas: [appSchema as any],
|
|
118
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertidor-bmp-a-webp';
|
|
6
|
+
const title = 'Convertir BMP a WebP Gratis | Tu Compresor Nativo Offline';
|
|
7
|
+
const description =
|
|
8
|
+
'Convierte imágenes BMP a WebP sin conexión. Reduce archivos enormes a kilobytes. Sin subir archivos. Gratis, offline y completamente privado.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Arrastra archivos BMP...',
|
|
12
|
+
convertText: 'Para convertirlos a WebP 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: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: '¿Por qué mis archivos BMP ocupan 10 veces más y qué gano al tenerlos en WebP?',
|
|
24
|
+
answer:
|
|
25
|
+
'El BMP guarda mapas de píxeles sin comprimir. WebP usa compresión matemática para bajar enormes BMPs a menos de un megabyte manteniendo la imagen sumamente reconocible.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '¿Tengo que registrar una cuenta?',
|
|
29
|
+
answer:
|
|
30
|
+
'No exigimos correo y tu material permanecerá aislado, puesto que el procesamiento lo realiza el Javascript del navegador instalado en tu PC, sin envío remoto.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: '¿Puedo arrastrar muchos archivos simultáneamente?',
|
|
34
|
+
answer:
|
|
35
|
+
'Sí, puedes arrastrar 50 o 100 archivos si tu hardware aguanta procesar todos sin hacer colas.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identificar Archivos Brutos',
|
|
42
|
+
text: 'Sitúa tus colecciones de mapa de bit en ventanas listas al traslado.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Activación Nativa del Lote',
|
|
46
|
+
text: 'Proyecta o arrastra todos los archivos a nuestra mesa digital.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Evacuación del Lote WebP',
|
|
50
|
+
text: 'Pulsa los resultados y obtendrás por separado la imagen en disco de micro-pesos o como comprimidos inmediatos.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'BMP File Format',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Google WebP Documentation',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Convertidor BMP a WebP Online Gratuito',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html:
|
|
73
|
+
'Convertir BMP a WebP representa una de las reducciones de tamaño más dramáticas posibles entre formatos de imagen. Un archivo BMP sin comprimir puede ocupar 10, 20 o incluso 50 veces más espacio que su equivalente en WebP. El formato WebP de Google utiliza compresión avanzada tanto con pérdida como sin pérdida, logrando archivos extremadamente ligeros que mantienen una calidad visual excelente.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html:
|
|
78
|
+
'El proceso funciona completamente offline en tu navegador. Los archivos BMP se decodifican mediante el API nativo del navegador, se renderizan en un canvas HTML5 y se exportan como WebP. No se establece ninguna conexión de red durante la conversión, garantizando la confidencialidad total de tus archivos.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html:
|
|
83
|
+
'WebP también soporta el canal alfa para transparencias, lo que lo hace versátil para cualquier tipo de imagen. Si tus BMPs tienen fondos de colores uniformes, la compresión WebP sin pérdida puede generar archivos especialmente pequeños al aprovechar la redundancia de los datos.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'tip',
|
|
87
|
+
html:
|
|
88
|
+
'Si tienes una colección de imágenes BMP antiguas de Windows, convertirlas a WebP es la manera más eficiente de modernizarlas para uso web manteniendo toda su calidad visual.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'paragraph',
|
|
92
|
+
html:
|
|
93
|
+
'Un archivo BMP típico de pantalla de escritorio a 1920x1080 puede convertirse de sus 6 MB originales a un WebP de entre 100 KB y 500 KB, representando reducciones de hasta el 98%.',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html:
|
|
98
|
+
'Convierte BMP a WebP offline, gratis y sin límites. La conversión más eficiente disponible: de archivos enormes sin comprimir a WebP ultra-comprimido, con privacidad total garantizada.',
|
|
99
|
+
},
|
|
100
|
+
];
|
|
101
|
+
|
|
102
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
103
|
+
'@context': 'https://schema.org',
|
|
104
|
+
'@type': 'SoftwareApplication',
|
|
105
|
+
name: title,
|
|
106
|
+
description,
|
|
107
|
+
applicationCategory: 'UtilitiesApplication',
|
|
108
|
+
operatingSystem: 'Web',
|
|
109
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
110
|
+
inLanguage: 'es',
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const content: BmpAWebpLocaleContent = {
|
|
114
|
+
slug,
|
|
115
|
+
title,
|
|
116
|
+
description,
|
|
117
|
+
ui,
|
|
118
|
+
seo,
|
|
119
|
+
faq,
|
|
120
|
+
bibliography,
|
|
121
|
+
howTo,
|
|
122
|
+
schemas: [appSchema as any],
|
|
123
|
+
};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { WithContext, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ImageConverterUI } from '../../../shared/ImageConverter.astro';
|
|
3
|
+
import type { BmpAWebpLocaleContent } from '../index';
|
|
4
|
+
|
|
5
|
+
const slug = 'convertisseur-bmp-en-webp';
|
|
6
|
+
const title = 'Convertir BMP en WebP Gratuit | Votre Compresseur Natif Hors Ligne';
|
|
7
|
+
const description =
|
|
8
|
+
'Convertissez des images BMP en WebP hors ligne. Réduisez les fichiers volumineux à des kilo-octets. Sans téléchargement. Gratuit, hors ligne et totalement privé.';
|
|
9
|
+
|
|
10
|
+
const ui: ImageConverterUI = {
|
|
11
|
+
dragText: 'Faites glisser des fichiers BMP...',
|
|
12
|
+
convertText: 'Pour les convertir en WebP 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: BmpAWebpLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: 'Pourquoi mes fichiers BMP occupent-ils 10 fois plus de place et que gagne-je avec WebP ?',
|
|
24
|
+
answer:
|
|
25
|
+
'BMP stocke des cartes de pixels non compressées. WebP utilise la compression mathématique pour réduire les énormes BMP à moins d\'un mégaoctet tout en gardant l\'image très reconnaissable.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Dois-je créer un compte ?',
|
|
29
|
+
answer:
|
|
30
|
+
'Nous n\'exigeons pas d\'e-mail et votre matériel restera isolé, car le traitement est effectué par le JavaScript du navigateur installé sur votre PC, sans envoi distant.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Puis-je faire glisser plusieurs fichiers simultanément ?',
|
|
34
|
+
answer:
|
|
35
|
+
'Oui, vous pouvez faire glisser 50 ou 100 fichiers tant que votre matériel peut gérer leur traitement sans file d\'attente.',
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
const howTo: BmpAWebpLocaleContent['howTo'] = [
|
|
40
|
+
{
|
|
41
|
+
name: 'Identifier les fichiers bruts',
|
|
42
|
+
text: 'Placez vos collections de bitmaps dans des fenêtres prêtes pour le transfert.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
name: 'Activation native du lot',
|
|
46
|
+
text: 'Projetez ou faites glisser tous les fichiers sur notre espace de travail numérique.',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: 'Sortie du lot WebP',
|
|
50
|
+
text: 'Cliquez sur les résultats et obtenez les images de micro-poids sur disque séparément ou comme packages compressés immédiats.',
|
|
51
|
+
},
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const bibliography: BmpAWebpLocaleContent['bibliography'] = [
|
|
55
|
+
{
|
|
56
|
+
name: 'Format de fichier BMP',
|
|
57
|
+
url: 'https://en.wikipedia.org/wiki/BMP_file_format',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Documentation Google WebP',
|
|
61
|
+
url: 'https://developers.google.com/speed/webp',
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
const seo: BmpAWebpLocaleContent['seo'] = [
|
|
66
|
+
{
|
|
67
|
+
type: 'title',
|
|
68
|
+
text: 'Convertisseur BMP vers WebP en Ligne Gratuit',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html:
|
|
73
|
+
'Convertir BMP en WebP représente l\'une des réductions de taille les plus dramatiques possibles entre formats d\'image. Un fichier BMP non compressé peut occuper 10, 20 ou même 50 fois plus d\'espace que son équivalent WebP. Le format WebP de Google utilise une compression avancée avec et sans perte, produisant des fichiers extrêmement légers.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
html:
|
|
78
|
+
'Le processus fonctionne entièrement hors ligne dans votre navigateur. Les fichiers BMP sont décodés via l\'API native du navigateur, rendus sur un canvas HTML5 et exportés en WebP. Aucune connexion réseau n\'est établie pendant la conversion, garantissant la confidentialité totale de vos fichiers.',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'tip',
|
|
82
|
+
html:
|
|
83
|
+
'Si vous avez une collection d\'anciennes images BMP Windows, les convertir en WebP est le moyen le plus efficace de les moderniser pour le web tout en maintenant toute leur qualité visuelle.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'paragraph',
|
|
87
|
+
html:
|
|
88
|
+
'Un BMP de capture d\'écran de bureau typique à 1920x1080 peut passer de ses 6 Mo originaux à un WebP de 100 Ko à 500 Ko, représentant des réductions allant jusqu\'à 98%.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
type: 'paragraph',
|
|
92
|
+
html:
|
|
93
|
+
'Convertissez BMP en WebP hors ligne, gratuitement et sans limites. La conversion la plus efficace disponible : de fichiers non compressés énormes vers un WebP ultra-compressé, avec confidentialité totale garantie.',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
98
|
+
'@context': 'https://schema.org',
|
|
99
|
+
'@type': 'SoftwareApplication',
|
|
100
|
+
name: title,
|
|
101
|
+
description,
|
|
102
|
+
applicationCategory: 'UtilitiesApplication',
|
|
103
|
+
operatingSystem: 'Web',
|
|
104
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
105
|
+
inLanguage: 'fr',
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const content: BmpAWebpLocaleContent = {
|
|
109
|
+
slug,
|
|
110
|
+
title,
|
|
111
|
+
description,
|
|
112
|
+
ui,
|
|
113
|
+
seo,
|
|
114
|
+
faq,
|
|
115
|
+
bibliography,
|
|
116
|
+
howTo,
|
|
117
|
+
schemas: [appSchema as any],
|
|
118
|
+
};
|