Génère un URI de données
lisible par l'avant à partir des octets obtenus à partir du fichier image.
L'exemple de code est le suivant.
import java.util.Base64
val bytes: ByteArray = //Chaîne d'octets extraite du fichier
val base64Bytes: ByteArray = Base64.getEncoder().encode(bytes) //Encodage Base64
val base64Utf8String = String(base64Bytes, Charsets.UTF_8) // UTF-Conversion en 8
val mimeType: String = //Type MIME obtenu par une méthode
//Génération d'URI de données
val dataUri: String = "data:${mimeType};base64,${base64Utf8String}"
L'encodage en «Base64» peut être effectué sans installer de bibliothèque en utilisant l'encodeur défini dans «java.util.Base64» dans «Java8» ou version ultérieure.
Trois types d'encodeurs, de base, ʻURL et
MIME`, sont définis ici, mais comme le montre l'exemple, ils ne peuvent pas être correctement interprétés à l'avant sans utiliser l'encodeur de base.
Le résultat encodé étant une chaîne d'octets, il ne peut pas être traité comme un "URI de données" à moins qu'il ne soit correctement converti en chaîne de caractères.
L'exemple de code ne décrit pas comment obtenir le type MIME
, mais je pense qu'il est préférable de deviner à partir de l'extension, sauf si vous avez une considération spécifique.
Il est également possible de déterminer strictement le type MIME
en utilisant ʻApache Tika`.
Recommended Posts