[Java] Générer un URI de données à partir d'une chaîne d'octets du contenu du fichier [Kotlin]

Choses à faire

Génère un URI de données lisible par l'avant à partir des octets obtenus à partir du fichier image.

manière

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}"

Commentaire

Encodage en Base64

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.

Conversion en chaîne

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.

Obtenir le type MIME

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

[Java] Générer un URI de données à partir d'une chaîne d'octets du contenu du fichier [Kotlin]
[Java] Récupère MimeType à partir du contenu du fichier avec Apathce Tika [Kotlin]
Générer le code source à partir du fichier JAR avec JD-GUI du projet Java Decompiler
JAVA: jar, aar, affichez le contenu du fichier
Langage Java du point de vue de Kotlin et C #
[Java] Obtenir le jeu de caractères avec Apathce Tika / Initialiser la chaîne à partir du jeu de caractères [Kotlin]
Générer un flux à partir d'un tableau de types primitifs en Java
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
[Java] Comparaison de vitesse de combinaison de chaînes
Diverses méthodes de la classe Java String
Remplacez le contenu du fichier Jar
Générer HashMap à partir du fichier de ressources XML
Exécuter le fichier de commandes à partir de Java
[Java] Zones de données d'exécution de JVM
Génériques Kotlin pour les développeurs Java
[Java] Comparaison correcte du type String