Introduction

Cette procédure est à utiliser que dans des cas très particuliers. La taille des données en base peut vite exploser avec cet encodage et provoquer des échecs de sauvegardes/restaurations de la base de données, impactant donc TOUTE LA PLATEFORME et TOUS SES UTILISATEURS !En particulier, ne surtout pas utiliser cet encodage pour des vidéos.

Commençons par regarder comment une image est habituellement intégrée dans un contenu HTML. Nous regarderons ensuite ce qui change en base64.

Dans les champs où Moodle permet d'entrer un contenu au format HTML (par exemple une description de cours), quand on veut insérer une image, il faut cliquer sur le bouton image, puis renseigner l'adresse (URL) de l'image, c'est-à-dire l'endroit où elle se trouve. En effet, l'image n'est pas directement intégrée dans le code HTML, qui n'est que du texte formaté d'une certaine manière, mais au contraire seulement référencé. En d'autres termes le texte HTML qui compose le document fait référence à un fichier image qui se trouve ailleurs, pour que l'image qu'il contient puisse s'afficher.

Avec l'encodage en base64 on peut intégrer le contenu du fichier image directement dans le texte HTML en convertissant ce contenu (binaire c'est-à-dire exclusivement composé de nombres au format binaire) sous une forme textuelle. Il n'est alors plus nécessaire de référencer un fichier image ailleurs.

Cela peut être utile quand il n'est pas possible de référencer une image externe.

Avantages : pas de liens vers un fichier image source à gérer (ce qui peut être utile dans certains cas)
Inconvénients : le contenu du fichier image prend plus de place en base64 que sous sa forme binaire (presque 2 fois plus) le “vrai” contenu textuel se retrouve noyé au milieu d'un texte devenu gigantesque (à cause de la présence des chaînes de caractères encodées en base64, qui sont très très longues). Le texte originel perd d'ailleurs un peu sa “nature textuelle”, puisqu'il contient maintenant une partie de texte qui n'a pas vocation à être utilisé à terme pour représenter des caractères et des mots. le contenu de l'image n'est plus stocké dans des fichiers dans le dossier moodledata/, mais en base de données, ce qui peut la faire grossir artificiellement et pourrait poser des problème si cette pratique était très répandue.

Utilisation

Convertir l'image en base64, par exemple avec un outil en ligne, telle que https://www.developertoolkits.com/base64/encoder \\

copier le résultat en base64 et coller-le là où vous auriez habituellement insérer l'URL de l'image. Avec Moodle, ce pourrait être dans le champs URL

le texte en base64 doit être préfixé par data:image/png;base64, ← normalement il l'est si vous utilisez le site indiqué
En dehors de Moodle, ou si le mode HTML est utilisé, on peut faire la même chose et insérer le résultat en base64, là où d'habitude se trouve le texte de l'URL. en markdown : ![texte alternatif...](##ici##) en HTML : <img src="##ici##" alt="texte alternatif..."/>