@jjlmoya/utils-converters 1.25.0 → 1.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/fr.ts +1 -1
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/it.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/sv.ts +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_translation_completeness.test.ts +18 -12
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/avifAJpg/i18n/en.ts +164 -164
- package/src/tool/avifAJpg/i18n/es.ts +164 -164
- package/src/tool/avifAJpg/i18n/fr.ts +164 -164
- package/src/tool/avifAJpg/i18n/ja.ts +166 -166
- package/src/tool/avifAJpg/i18n/ko.ts +166 -166
- package/src/tool/avifAJpg/i18n/zh.ts +166 -166
- package/src/tool/avifAJpg/seo.astro +15 -15
- package/src/tool/avifAPng/i18n/en.ts +164 -164
- package/src/tool/avifAPng/i18n/es.ts +164 -164
- package/src/tool/avifAPng/i18n/fr.ts +164 -164
- package/src/tool/avifAPng/i18n/ja.ts +166 -166
- package/src/tool/avifAPng/i18n/ko.ts +166 -166
- package/src/tool/avifAPng/i18n/zh.ts +166 -166
- package/src/tool/avifAPng/seo.astro +15 -15
- package/src/tool/avifAWebp/i18n/en.ts +164 -164
- package/src/tool/avifAWebp/i18n/es.ts +164 -164
- package/src/tool/avifAWebp/i18n/fr.ts +164 -164
- package/src/tool/avifAWebp/i18n/ja.ts +166 -166
- package/src/tool/avifAWebp/i18n/ko.ts +166 -166
- package/src/tool/avifAWebp/i18n/zh.ts +166 -166
- package/src/tool/avifAWebp/seo.astro +15 -15
- package/src/tool/bmpAJpg/i18n/en.ts +164 -164
- package/src/tool/bmpAJpg/i18n/es.ts +164 -164
- package/src/tool/bmpAJpg/i18n/fr.ts +164 -164
- package/src/tool/bmpAJpg/i18n/ja.ts +166 -166
- package/src/tool/bmpAJpg/i18n/ko.ts +166 -166
- package/src/tool/bmpAJpg/i18n/zh.ts +166 -166
- package/src/tool/bmpAJpg/seo.astro +15 -15
- package/src/tool/bmpAPng/i18n/en.ts +164 -164
- package/src/tool/bmpAPng/i18n/es.ts +164 -164
- package/src/tool/bmpAPng/i18n/fr.ts +164 -164
- package/src/tool/bmpAPng/i18n/ja.ts +165 -165
- package/src/tool/bmpAPng/i18n/ko.ts +165 -165
- package/src/tool/bmpAPng/i18n/zh.ts +165 -165
- package/src/tool/bmpAPng/seo.astro +15 -15
- package/src/tool/bmpAWebp/i18n/en.ts +164 -164
- package/src/tool/bmpAWebp/i18n/es.ts +164 -164
- package/src/tool/bmpAWebp/i18n/fr.ts +164 -164
- package/src/tool/bmpAWebp/i18n/ja.ts +166 -166
- package/src/tool/bmpAWebp/i18n/ko.ts +166 -166
- package/src/tool/bmpAWebp/i18n/zh.ts +166 -166
- package/src/tool/bmpAWebp/seo.astro +15 -15
- package/src/tool/gifAJpg/i18n/en.ts +164 -164
- package/src/tool/gifAJpg/i18n/es.ts +164 -164
- package/src/tool/gifAJpg/i18n/fr.ts +164 -164
- package/src/tool/gifAJpg/i18n/ja.ts +166 -166
- package/src/tool/gifAJpg/i18n/ko.ts +166 -166
- package/src/tool/gifAJpg/i18n/zh.ts +166 -166
- package/src/tool/gifAJpg/seo.astro +15 -15
- package/src/tool/gifAPng/i18n/en.ts +164 -164
- package/src/tool/gifAPng/i18n/es.ts +164 -164
- package/src/tool/gifAPng/i18n/fr.ts +164 -164
- package/src/tool/gifAPng/i18n/ja.ts +166 -166
- package/src/tool/gifAPng/i18n/ko.ts +166 -166
- package/src/tool/gifAPng/i18n/zh.ts +166 -166
- package/src/tool/gifAPng/seo.astro +15 -15
- package/src/tool/gifAWebp/i18n/en.ts +164 -164
- package/src/tool/gifAWebp/i18n/es.ts +164 -164
- package/src/tool/gifAWebp/i18n/fr.ts +164 -164
- package/src/tool/gifAWebp/i18n/ja.ts +166 -166
- package/src/tool/gifAWebp/i18n/ko.ts +166 -166
- package/src/tool/gifAWebp/i18n/zh.ts +166 -166
- package/src/tool/gifAWebp/seo.astro +15 -15
- package/src/tool/imagenBase64/i18n/en.ts +154 -154
- package/src/tool/imagenBase64/i18n/es.ts +154 -154
- package/src/tool/imagenBase64/i18n/fr.ts +154 -154
- package/src/tool/imagenBase64/seo.astro +15 -15
- package/src/tool/jpgAIco/seo.astro +15 -15
- package/src/tool/jpgAPng/i18n/en.ts +164 -164
- package/src/tool/jpgAPng/i18n/es.ts +164 -164
- package/src/tool/jpgAPng/i18n/fr.ts +164 -164
- package/src/tool/jpgAPng/i18n/ja.ts +166 -166
- package/src/tool/jpgAPng/i18n/ko.ts +166 -166
- package/src/tool/jpgAPng/i18n/zh.ts +166 -166
- package/src/tool/jpgAPng/seo.astro +15 -15
- package/src/tool/jpgAWebp/i18n/en.ts +164 -164
- package/src/tool/jpgAWebp/i18n/es.ts +164 -164
- package/src/tool/jpgAWebp/i18n/fr.ts +164 -164
- package/src/tool/jpgAWebp/seo.astro +15 -15
- package/src/tool/pngAIco/seo.astro +15 -15
- package/src/tool/pngAJpg/i18n/de.ts +21 -21
- package/src/tool/pngAJpg/i18n/es.ts +177 -177
- package/src/tool/pngAJpg/i18n/fr.ts +137 -137
- package/src/tool/pngAJpg/i18n/id.ts +89 -89
- package/src/tool/pngAJpg/i18n/it.ts +89 -89
- package/src/tool/pngAJpg/i18n/ko.ts +177 -177
- package/src/tool/pngAJpg/i18n/nl.ts +20 -20
- package/src/tool/pngAJpg/i18n/pl.ts +89 -89
- package/src/tool/pngAJpg/i18n/pt.ts +89 -89
- package/src/tool/pngAJpg/i18n/ru.ts +177 -177
- package/src/tool/pngAJpg/i18n/sv.ts +89 -89
- package/src/tool/pngAJpg/i18n/tr.ts +89 -89
- package/src/tool/pngAJpg/seo.astro +15 -15
- package/src/tool/pngAWebp/i18n/en.ts +164 -164
- package/src/tool/pngAWebp/i18n/es.ts +164 -164
- package/src/tool/pngAWebp/i18n/fr.ts +164 -164
- package/src/tool/pngAWebp/seo.astro +15 -15
- package/src/tool/svgAJpg/i18n/fr.ts +164 -164
- package/src/tool/svgAJpg/seo.astro +15 -15
- package/src/tool/svgAPng/i18n/fr.ts +164 -164
- package/src/tool/svgAPng/seo.astro +15 -15
- package/src/tool/webpAIco/seo.astro +15 -15
- package/src/tool/webpAJpg/seo.astro +15 -15
- package/src/tool/webpAPng/bibliography.ts +13 -13
- package/src/tool/webpAPng/i18n/de.ts +166 -166
- package/src/tool/webpAPng/i18n/es.ts +171 -171
- package/src/tool/webpAPng/i18n/fr.ts +166 -166
- package/src/tool/webpAPng/i18n/id.ts +166 -166
- package/src/tool/webpAPng/i18n/it.ts +166 -166
- package/src/tool/webpAPng/i18n/nl.ts +166 -166
- package/src/tool/webpAPng/i18n/pl.ts +166 -166
- package/src/tool/webpAPng/i18n/pt.ts +166 -166
- package/src/tool/webpAPng/i18n/ru.ts +166 -166
- package/src/tool/webpAPng/i18n/sv.ts +166 -166
- package/src/tool/webpAPng/i18n/tr.ts +167 -167
- package/src/tool/webpAPng/seo.astro +15 -15
|
@@ -1,158 +1,158 @@
|
|
|
1
1
|
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ImagenBase64LocaleContent } from '../index';
|
|
2
|
+
import type { ImagenBase64LocaleContent } from '../index';
|
|
3
3
|
import { generateSchemas } from '../../../shared/logic/schemas';
|
|
4
|
-
import type { ImageToBase64UI } from '../index';
|
|
5
|
-
|
|
6
|
-
const slug = 'convertisseur-image-base64';
|
|
7
|
-
const title = 'Convertisseur Image vers Base64 en Ligne';
|
|
8
|
-
const description =
|
|
9
|
-
'Convertissez n\'importe quelle image en code Base64 et Data URI directement dans votre navigateur. Sans téléchargement. Gratuit, privé et instantané.';
|
|
10
|
-
|
|
11
|
-
const ui: ImageToBase64UI = {
|
|
12
|
-
dragTitle: 'Faites glisser votre image ici',
|
|
13
|
-
dragSubtext: 'ou cliquez pour parcourir vos fichiers',
|
|
14
|
-
formatBadge: 'Supporte JPG, PNG, WEBP, SVG, GIF',
|
|
15
|
-
dataUriLabel: 'Data URI (Prêt pour CSS / HTML src="")',
|
|
16
|
-
base64Label: 'Base64 uniquement (Texte encodé en clair)',
|
|
17
|
-
copyBtn: 'Copier',
|
|
18
|
-
dataUriPlaceholder: 'Téléchargez une image pour voir le code Data URI...',
|
|
19
|
-
base64Placeholder: 'Téléchargez une image pour voir le code Base64 pur...',
|
|
20
|
-
toastMessage: 'Code copié dans le presse-papiers !',
|
|
4
|
+
import type { ImageToBase64UI } from '../index';
|
|
5
|
+
|
|
6
|
+
const slug = 'convertisseur-image-base64';
|
|
7
|
+
const title = 'Convertisseur Image vers Base64 en Ligne';
|
|
8
|
+
const description =
|
|
9
|
+
'Convertissez n\'importe quelle image en code Base64 et Data URI directement dans votre navigateur. Sans téléchargement. Gratuit, privé et instantané.';
|
|
10
|
+
|
|
11
|
+
const ui: ImageToBase64UI = {
|
|
12
|
+
dragTitle: 'Faites glisser votre image ici',
|
|
13
|
+
dragSubtext: 'ou cliquez pour parcourir vos fichiers',
|
|
14
|
+
formatBadge: 'Supporte JPG, PNG, WEBP, SVG, GIF',
|
|
15
|
+
dataUriLabel: 'Data URI (Prêt pour CSS / HTML src="")',
|
|
16
|
+
base64Label: 'Base64 uniquement (Texte encodé en clair)',
|
|
17
|
+
copyBtn: 'Copier',
|
|
18
|
+
dataUriPlaceholder: 'Téléchargez une image pour voir le code Data URI...',
|
|
19
|
+
base64Placeholder: 'Téléchargez une image pour voir le code Base64 pur...',
|
|
20
|
+
toastMessage: 'Code copié dans le presse-papiers !',
|
|
21
21
|
invalidImageAlert: 'Veuillez télécharger un fichier image valide.',
|
|
22
|
-
bibliographyTitle: 'Références Bibliographiques',
|
|
23
|
-
faqTitle: 'Questions Fréquentes',
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const faq: ImagenBase64LocaleContent['faq'] = [
|
|
27
|
-
{
|
|
28
|
-
question: 'Qu\'est-ce que Base64 et à quoi sert-il dans le développement web ?',
|
|
29
|
-
answer:
|
|
30
|
-
'Base64 est un système d\'encodage qui convertit des données binaires en une chaîne de texte ASCII. Dans le développement web, il est utilisé pour intégrer des images directement dans les fichiers HTML ou CSS via des Data URIs, réduisant le nombre de requêtes HTTP vers le serveur.',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
question: 'Est-il sûr de convertir mes images en Base64 ici ?',
|
|
34
|
-
answer:
|
|
35
|
-
'Absolument sûr et privé. Notre outil fonctionne à 100% localement dans votre navigateur. Vos images ne sont jamais téléchargées ni traitées sur un serveur externe.',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
question: 'Quels formats d\'image le convertisseur Base64 supporte-t-il ?',
|
|
39
|
-
answer:
|
|
40
|
-
'L\'outil est compatible avec JPG, PNG, GIF, WebP et même les fichiers vectoriels SVG. Lors du chargement de l\'image, il détectera automatiquement son type MIME pour générer le code Data URI exact.',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
question: 'Quand NE devrais-je PAS utiliser des images en Base64 ?',
|
|
44
|
-
answer:
|
|
45
|
-
'Vous devriez éviter d\'utiliser des images en Base64 pour de grandes photographies ou des images haute résolution. Le code Base64 occupe environ 33% de poids en plus que le fichier binaire original, ce qui peut excessivement gonfler vos feuilles de style CSS ou documents HTML.',
|
|
46
|
-
},
|
|
47
|
-
];
|
|
48
|
-
|
|
49
|
-
const howTo: ImagenBase64LocaleContent['howTo'] = [
|
|
50
|
-
{
|
|
51
|
-
name: 'Faites glisser ou sélectionnez votre image',
|
|
52
|
-
text: 'Déplacez n\'importe quelle image (JPG, PNG, WebP, SVG, GIF) vers la zone de téléchargement pour démarrer la conversion.',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
name: 'Copiez le code généré',
|
|
56
|
-
text: 'Vous verrez deux zones de texte: le Data URI complet (prêt à utiliser dans src="" ou CSS) et le Base64 pur pour d\'autres utilisations.',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'Utilisez le code dans votre projet',
|
|
60
|
-
text: 'Collez directement le Data URI dans le src d\'une balise img ou dans votre CSS comme background-image sans avoir besoin de fichiers externes.',
|
|
61
|
-
},
|
|
62
|
-
];
|
|
63
|
-
|
|
64
|
-
const seo: ImagenBase64LocaleContent['seo'] = [
|
|
65
|
-
{
|
|
66
|
-
type: 'title',
|
|
67
|
-
text: 'Convertisseur Image vers Base64: Intégrez des Images Sans Requêtes HTTP',
|
|
68
|
-
level: 2,
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
type: 'paragraph',
|
|
72
|
-
html: 'Base64 est une technique d\'encodage qui transforme des données binaires - comme une image - en une chaîne de texte ASCII pur. Le résultat est un Data URI: une URL auto-contenue qui commence par <code>data:image/png;base64,...</code> et contient l\'image entière encodée. En intégrant ce code directement dans votre HTML, CSS ou JSON, l\'image se charge sans aucune requête HTTP supplémentaire au serveur - zéro latence réseau, chargement instantané.',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: 'title',
|
|
76
|
-
text: 'Quand utiliser les images en Base64',
|
|
77
|
-
level: 3,
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
type: 'paragraph',
|
|
81
|
-
html: 'Le principal argument en faveur de Base64 est l\'élimination des requêtes réseau. Chaque image sur une page web représente une requête HTTP avec son overhead de connexion, DNS, handshake TLS et latence. Pour les très petites images critiques - le logo principal de l\'application, le favicon, une icône d\'interface - les intégrer en Base64 dans le CSS ou HTML élimine ce coût et garantit leur affichage instantané même avant que le navigateur n\'ait rien mis en cache.',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'paragraph',
|
|
85
|
-
html: 'Cette technique est particulièrement puissante dans les applications SPA (Single Page Applications) où le bundle JavaScript et CSS est généré au moment de la compilation: intégrer de petites images dans le bundle garantit qu\'elles se chargent avec le code sans requêtes supplémentaires. Elle est aussi indispensable pour les emails HTML, où les clients de messagerie bloquent les images externes mais affichent toujours les Data URIs intégrés.',
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
type: 'title',
|
|
89
|
-
text: 'Cas d\'utilisation pour les images Base64',
|
|
90
|
-
level: 3,
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
type: 'list',
|
|
94
|
-
icon: 'mdi:check-circle',
|
|
95
|
-
items: [
|
|
96
|
-
'HTML inline: <code><img src="data:image/png;base64,..."></code> pour les icônes critiques.',
|
|
97
|
-
'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> pour les SVGs d\'interface.',
|
|
98
|
-
'JSON et APIs REST: envoi d\'images comme données texte dans les payloads JSON.',
|
|
99
|
-
'Emails HTML: images intégrées qui s\'affichent même quand le client bloque les URLs externes.',
|
|
100
|
-
'Intégration SVG: intégrer des images raster dans des fichiers SVG comme données inline.',
|
|
101
|
-
],
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
type: 'title',
|
|
105
|
-
text: 'Comment fonctionne la conversion dans le navigateur',
|
|
106
|
-
level: 3,
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
type: 'paragraph',
|
|
110
|
-
html: 'Lorsque vous sélectionnez ou faites glisser une image, l\'API <code>FileReader</code> du navigateur la lit directement depuis le disque comme données binaires en RAM. La méthode <code>readAsDataURL()</code> convertit ces octets binaires en leur représentation Base64 selon l\'algorithme RFC 4648 - chaque 3 octets de données originales sont représentés par 4 caractères ASCII de l\'alphabet Base64. Le résultat inclut le type MIME correct détecté automatiquement.',
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
type: 'tip',
|
|
114
|
-
title: 'Utilisez',
|
|
115
|
-
html: 'Base64 augmente la taille du fichier d\'environ 33%: une image de 10 Ko devient ~13,3 Ko de texte. Pour les petites icônes et logos, ce coût est minimal et l\'élimination de la requête HTTP le compense. Pour les photographies ou grandes images, le surcoût de taille est significatif - utilisez toujours un CDN pour les grandes images.',
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
type: 'title',
|
|
119
|
-
text: 'Quand NE PAS utiliser Base64',
|
|
120
|
-
level: 3,
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
type: 'tip',
|
|
124
|
-
title: 'Évitez Base64 pour les grandes images: utilisez un CDN',
|
|
125
|
-
html: 'Si vous avez des images de plus de 10-20 Ko, Base64 nuit aux performances: il gonfle la taille du HTML/CSS, empêche le navigateur de mettre l\'image en cache de façon indépendante, et bloque le rendu pendant que le parseur traite la chaîne géante. Pour les grandes images, servez toujours depuis un CDN avec des en-têtes de cache appropriés.',
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type: 'title',
|
|
129
|
-
text: 'Compatibilité et confidentialité',
|
|
130
|
-
level: 3,
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'paragraph',
|
|
134
|
-
html: 'Les Data URIs sont compatibles avec 100% des navigateurs modernes et la plupart des clients de messagerie. Notre outil traite tout localement via l\'API FileReader - vos images ne quittent jamais votre appareil. Cela le rend adapté aux images d\'entreprise, aux captures d\'écran privées ou à tout contenu visuel confidentiel que vous devez convertir en Base64.',
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
type: 'title',
|
|
138
|
-
text: 'Conclusion: L\'outil d\'intégration le plus rapide et le plus privé',
|
|
139
|
-
level: 3,
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
type: 'paragraph',
|
|
143
|
-
html: 'Convertir des images en Base64 est une technique ciblée mais très puissante quand elle est appliquée correctement. Utilisez-la pour les petites images critiques où zéro requête HTTP fait la différence, et évitez-la pour les grandes images où un CDN gagne toujours. Avec notre outil, vous obtenez le Data URI en un instant, sans rien téléverser sur aucun serveur.',
|
|
144
|
-
},
|
|
145
|
-
];
|
|
146
|
-
|
|
22
|
+
bibliographyTitle: 'Références Bibliographiques',
|
|
23
|
+
faqTitle: 'Questions Fréquentes',
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const faq: ImagenBase64LocaleContent['faq'] = [
|
|
27
|
+
{
|
|
28
|
+
question: 'Qu\'est-ce que Base64 et à quoi sert-il dans le développement web ?',
|
|
29
|
+
answer:
|
|
30
|
+
'Base64 est un système d\'encodage qui convertit des données binaires en une chaîne de texte ASCII. Dans le développement web, il est utilisé pour intégrer des images directement dans les fichiers HTML ou CSS via des Data URIs, réduisant le nombre de requêtes HTTP vers le serveur.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Est-il sûr de convertir mes images en Base64 ici ?',
|
|
34
|
+
answer:
|
|
35
|
+
'Absolument sûr et privé. Notre outil fonctionne à 100% localement dans votre navigateur. Vos images ne sont jamais téléchargées ni traitées sur un serveur externe.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Quels formats d\'image le convertisseur Base64 supporte-t-il ?',
|
|
39
|
+
answer:
|
|
40
|
+
'L\'outil est compatible avec JPG, PNG, GIF, WebP et même les fichiers vectoriels SVG. Lors du chargement de l\'image, il détectera automatiquement son type MIME pour générer le code Data URI exact.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Quand NE devrais-je PAS utiliser des images en Base64 ?',
|
|
44
|
+
answer:
|
|
45
|
+
'Vous devriez éviter d\'utiliser des images en Base64 pour de grandes photographies ou des images haute résolution. Le code Base64 occupe environ 33% de poids en plus que le fichier binaire original, ce qui peut excessivement gonfler vos feuilles de style CSS ou documents HTML.',
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
const howTo: ImagenBase64LocaleContent['howTo'] = [
|
|
50
|
+
{
|
|
51
|
+
name: 'Faites glisser ou sélectionnez votre image',
|
|
52
|
+
text: 'Déplacez n\'importe quelle image (JPG, PNG, WebP, SVG, GIF) vers la zone de téléchargement pour démarrer la conversion.',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: 'Copiez le code généré',
|
|
56
|
+
text: 'Vous verrez deux zones de texte: le Data URI complet (prêt à utiliser dans src="" ou CSS) et le Base64 pur pour d\'autres utilisations.',
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'Utilisez le code dans votre projet',
|
|
60
|
+
text: 'Collez directement le Data URI dans le src d\'une balise img ou dans votre CSS comme background-image sans avoir besoin de fichiers externes.',
|
|
61
|
+
},
|
|
62
|
+
];
|
|
63
|
+
|
|
64
|
+
const seo: ImagenBase64LocaleContent['seo'] = [
|
|
65
|
+
{
|
|
66
|
+
type: 'title',
|
|
67
|
+
text: 'Convertisseur Image vers Base64: Intégrez des Images Sans Requêtes HTTP',
|
|
68
|
+
level: 2,
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html: 'Base64 est une technique d\'encodage qui transforme des données binaires - comme une image - en une chaîne de texte ASCII pur. Le résultat est un Data URI: une URL auto-contenue qui commence par <code>data:image/png;base64,...</code> et contient l\'image entière encodée. En intégrant ce code directement dans votre HTML, CSS ou JSON, l\'image se charge sans aucune requête HTTP supplémentaire au serveur - zéro latence réseau, chargement instantané.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'title',
|
|
76
|
+
text: 'Quand utiliser les images en Base64',
|
|
77
|
+
level: 3,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
type: 'paragraph',
|
|
81
|
+
html: 'Le principal argument en faveur de Base64 est l\'élimination des requêtes réseau. Chaque image sur une page web représente une requête HTTP avec son overhead de connexion, DNS, handshake TLS et latence. Pour les très petites images critiques - le logo principal de l\'application, le favicon, une icône d\'interface - les intégrer en Base64 dans le CSS ou HTML élimine ce coût et garantit leur affichage instantané même avant que le navigateur n\'ait rien mis en cache.',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: 'paragraph',
|
|
85
|
+
html: 'Cette technique est particulièrement puissante dans les applications SPA (Single Page Applications) où le bundle JavaScript et CSS est généré au moment de la compilation: intégrer de petites images dans le bundle garantit qu\'elles se chargent avec le code sans requêtes supplémentaires. Elle est aussi indispensable pour les emails HTML, où les clients de messagerie bloquent les images externes mais affichent toujours les Data URIs intégrés.',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: 'title',
|
|
89
|
+
text: 'Cas d\'utilisation pour les images Base64',
|
|
90
|
+
level: 3,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'list',
|
|
94
|
+
icon: 'mdi:check-circle',
|
|
95
|
+
items: [
|
|
96
|
+
'HTML inline: <code><img src="data:image/png;base64,..."></code> pour les icônes critiques.',
|
|
97
|
+
'CSS background: <code>background-image: url("data:image/svg+xml;base64,...")</code> pour les SVGs d\'interface.',
|
|
98
|
+
'JSON et APIs REST: envoi d\'images comme données texte dans les payloads JSON.',
|
|
99
|
+
'Emails HTML: images intégrées qui s\'affichent même quand le client bloque les URLs externes.',
|
|
100
|
+
'Intégration SVG: intégrer des images raster dans des fichiers SVG comme données inline.',
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: 'Comment fonctionne la conversion dans le navigateur',
|
|
106
|
+
level: 3,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'Lorsque vous sélectionnez ou faites glisser une image, l\'API <code>FileReader</code> du navigateur la lit directement depuis le disque comme données binaires en RAM. La méthode <code>readAsDataURL()</code> convertit ces octets binaires en leur représentation Base64 selon l\'algorithme RFC 4648 - chaque 3 octets de données originales sont représentés par 4 caractères ASCII de l\'alphabet Base64. Le résultat inclut le type MIME correct détecté automatiquement.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'tip',
|
|
114
|
+
title: 'Utilisez',
|
|
115
|
+
html: 'Base64 augmente la taille du fichier d\'environ 33%: une image de 10 Ko devient ~13,3 Ko de texte. Pour les petites icônes et logos, ce coût est minimal et l\'élimination de la requête HTTP le compense. Pour les photographies ou grandes images, le surcoût de taille est significatif - utilisez toujours un CDN pour les grandes images.',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'Quand NE PAS utiliser Base64',
|
|
120
|
+
level: 3,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'tip',
|
|
124
|
+
title: 'Évitez Base64 pour les grandes images: utilisez un CDN',
|
|
125
|
+
html: 'Si vous avez des images de plus de 10-20 Ko, Base64 nuit aux performances: il gonfle la taille du HTML/CSS, empêche le navigateur de mettre l\'image en cache de façon indépendante, et bloque le rendu pendant que le parseur traite la chaîne géante. Pour les grandes images, servez toujours depuis un CDN avec des en-têtes de cache appropriés.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Compatibilité et confidentialité',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Les Data URIs sont compatibles avec 100% des navigateurs modernes et la plupart des clients de messagerie. Notre outil traite tout localement via l\'API FileReader - vos images ne quittent jamais votre appareil. Cela le rend adapté aux images d\'entreprise, aux captures d\'écran privées ou à tout contenu visuel confidentiel que vous devez convertir en Base64.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'title',
|
|
138
|
+
text: 'Conclusion: L\'outil d\'intégration le plus rapide et le plus privé',
|
|
139
|
+
level: 3,
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'paragraph',
|
|
143
|
+
html: 'Convertir des images en Base64 est une technique ciblée mais très puissante quand elle est appliquée correctement. Utilisez-la pour les petites images critiques où zéro requête HTTP fait la différence, et évitez-la pour les grandes images où un CDN gagne toujours. Avec notre outil, vous obtenez le Data URI en un instant, sans rien téléverser sur aucun serveur.',
|
|
144
|
+
},
|
|
145
|
+
];
|
|
147
146
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
147
|
+
|
|
148
|
+
export const content: ImagenBase64LocaleContent = {
|
|
149
|
+
slug,
|
|
150
|
+
title,
|
|
151
|
+
description,
|
|
152
|
+
ui,
|
|
153
|
+
seo,
|
|
154
|
+
faq,
|
|
155
|
+
bibliography,
|
|
156
|
+
howTo,
|
|
157
|
+
schemas: generateSchemas({ title, description, inLanguage: 'fr', faq, howTo }),
|
|
158
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { imagenBase64 } 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 imagenBase64.i18n[locale]?.();
|
|
12
|
-
if (!content) return null;
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { imagenBase64 } 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 imagenBase64.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
-
import { jpgAIco } 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 jpgAIco.i18n[locale]?.();
|
|
12
|
-
if (!content) return null;
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { jpgAIco } 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 jpgAIco.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|