Los ejemplos en este artículo comparten con usted el código específico para Java para convertir imágenes en dibujos de caracteres para su referencia. El contenido específico es el siguiente
Public Class ImageProcesser {private static final char [] charset1 = {'m', '8', 'v', '|': ','. ',' '}; // Material de caracteres predeterminado conjunto privado char [] charset; // Material de dibujo de caracteres Conjunto de cadena privada imgString = ""; // Almacenamiento de cadenas convertidas // construyendo ImageProcesser público (char [] charset) {this.charset = charset; } // Construyendo public ImageProcesser () {this.charset = charset1; } public String getImgString () {return imgString; } /*Convierta el archivo gráfico en un carácter para dibujar una cadena* / public ImageProcesser TBitMapConvert (String ImagePath) {return toBitMapConvert (nuevo archivo (imagePath)); } public ImageProcesser TobitMapConvert (archivo ImageFile) {StringBuffer sb = new StringBuffer (); if (! ImageFile.Exists ()) {// Cuando el archivo de lectura no existe, finalice el programa System.out.println ("¡El archivo no existe!"); System.exit (1); } Color color; intente {bufferedImage buff = imageIO.Read (ImageFile); // Cargar el archivo de imagen como BufferedImage Stream Buff = CompressImage (Buff); int bitmaph = buff.getheight (); int bitmapw = buff.getWidth (); // escanee los píxeles de la imagen progresivamente, lea el valor RGB, tome su valor promedio y obtenga el material de carácter correspondiente del charset, y lo cargue en sb para (int y = 0; y <bitmaph; y ++) {for (int x = 0; x <bitmapw; x ++) {int rgb = buff.getrgb (x, y); color = nuevo color (RGB); int cValue = (color.getred ()+color.getgreen ()+color.getBlue ()) / 3; sb.append (charset [(int) ((cvalue * charset.length - 1)/255)]+""); } sb.append ("/r/n"); }} catch (ioException ex) {ex.printStackTrace (); } imgString = sb.ToString (); devolver esto; } /* Preprocesamiento del archivo de imagen: comprimir la imagen al borde más largo a 100px* / Private BufferedImage CompressImage (BufferedImage srcimg) {int h = srcimg.getheight (); int w = srcimg.getWidth (); if (math.max (h, w) <= 100) return srcimg; int new_h; int new_w; if (w> h) {new_w = 100; new_h = 100*h/w; } else {new_h = 100; new_w = 100*w/h; } BufferedImage smallImg = new BufferedImage (new_w, new_h, srcimg.gettype ()); Gráficos g = smallimg.getgraphics (); G.DrawImage (srcimg, 0,0, new_w, new_h, null); G.Dispose (); regresar smallimg; } /*Guardar la cadena como un archivo .txt* / public void saveastxt (string fileName) {try {printWriter out = new PrintWriter (new BufferedWriter (new FileWriter (FileName))); for (int i = 0; i <imgstring.length (); i ++) {out.print (imgString.charat (i)); } out.close (); } Catch (ioException ex) {ex.printstacktrace (); }} /*Archivo de imagen por lotes* / public static void batchimgFile (string srcfile, string tragetFile) {archivo de archivo = nuevo archivo (trageTfile); // carpeta que genera el archivo de imagen srcfolder = nuevo archivo (srcfile); if (! folder.exists () ||! ImageProcesser procesador = new ImageProcesser (); Archivo [] filelist = srcfolder.listFiles (); para (int i = 0; i <filelist.length; i ++) {if (! fileList [i] .Isfile ()) continuar; procesador.tobitmapConvert (filelist [i]); procesador.saveastxt (tragetFile+"/"+(i+1)+". txt"); System.out.println (filelist [i] .getName ()+"se convierte!"); } System.out.println ("¡Todos los img fueron convertidos!"); }}Haga clic para ver: enlace de referencia.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.