En este post vemos un ejemplo de como convertir un archivo de imagen en una cadena de texto codificado en Base64 aprovechando para ello, los métodos de Java8 y la librería de Apache Common IO para la escritura en disco.
Si no cuentas con la librería Common IO, puedes descargarla desde este enlace [Download Apache Commons IO]
¿De que nos sirve codificar una imagen en texto?
Este tipo de codificado es útil por ejemplo cuando queremos transmitir información a un Web Service basado en REST utilizando el formato JSON. OJO que mientras más grande sea la imagen a codificar, el archivo generado también sera grande.
import java.io.File; import java.io.IOException; import java.util.Base64; import org.apache.commons.io.FileUtils; public class Main { //Directorio de trabajo static String directorio = "E:\\tmp\\imagenes\\"; //extension del archivo de imagen static String extension = "png"; //nombre del archivo de imagen sin extension static String archivo = "dog"; public static void main(String[] args) { try { //Codificamos la imagen, añadimos a una etiqueta HTML y escribimos en disco FileUtils.writeStringToFile(new File(directorio + archivo + ".html"), "<img src=\"data:image/" + extension + ";base64," + imagenToBase64() + "\" />", "UTF-8"); } catch (IOException ex) { System.err.println(ex.getMessage()); } } public static String imagenToBase64() throws IOException { byte[] fileContent = FileUtils .readFileToByteArray(new File(directorio + archivo + "." + extension)); return Base64.getEncoder() .encodeToString(fileContent); } }
Este código nos genera un archivo HTML el cual si abrimos obtendremos esto:
Y si inspeccionamos el código vemos que la imagen esta en Base64
enjoy!!!
Los archivos digitales (txt, docx, xlsx, odt, odp, pdf, etc) nos permiten almacenar información el cual en ocasiones, de[...]
En el desarrollo web la elección de un buen editor de texto enriquecido (WYSIWYG) es una decisión crucial que afecta dir[...]
¿Quieres iniciarte en la programación? ¿Eres un programador impaciente que odia instalar cualquier software en su comput[...]
Tink es una biblioteca de cifrado desarrollada por un grupo de criptógrafos e ingenieros de seguridad de Google lanzado[...]
SQLite es un sistema de gestión de bases de datos relacional, escrita en C, si se desea hacer uso de encriptación con S[...]
¿Qué es SCRUM? SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como pu[...]