Artikel ini membagikan kode spesifik untuk Java untuk mengonversi gambar menjadi gambar karakter untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
kelas publik imageprocesser {private static final char [] charset1 = {'m', '8', 'v', '|': ','. ',' '}; // materi karakter default mengatur char pribadi [] charset; // bahan gambar karakter set private string imgstring = ""; // Menyimpan string yang dikonversi // Membangun Imageprocesser publik (char [] charset) {this.charset = charset; } // Membangun ImageProcesser publik () {this.charset = charset1; } string publik getImgString () {return imgstring; } /*Konversi file grafik menjadi karakter untuk menggambar string* / public ImageProcesser TOBITMAPCONVERT (String ImagePath) {return tobitMapConvert (file baru (imagePath)); } public ImageProcesser TOBITMAPCONVERT (File ImageFile) {StringBuffer SB = New StringBuffer (); if (! ImageFile.exists ()) {// Ketika file yang dibaca tidak ada, akhiri program System.out.println ("File tidak ada!"); System.exit (1); } Warna warna; coba {bufferedImage buff = imageIO.read (imagefile); // Muat file gambar seperti bufferedImage stream buff = compressimage (buff); int bitmaph = buff.getHeight (); int bitmapw = buff.getWidth (); //Scan the pixels of the image progressively, read the RGB value, take its average value, and get the corresponding character material from the charset, and load it into sb for(int y=0; y<bitmapH; y++){ for(int x=0; x<bitmapW; x++){ int rgb = buff.getRGB(x,y); warna = warna baru (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 (); kembalikan ini; } /* Preprocessing file gambar: Kompres gambar ke tepi terpanjang ke 100px* / private bufferedImage kompresimage (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 ()); Grafik g = smallimg.getGraphics (); G.DrawImage (srcimg, 0,0, new_w, new_h, null); g.dispose (); Kembalikan Smallimg; } /*Simpan string sebagai file .txt* / public void saveastxt (string fileName) {coba {printwriter out = printwriter baru (bufferedwriter baru (fileWriter baru (fileName)))); untuk (int i = 0; i <imgstring.length (); i ++) {out.print (imgstring.charat (i)); } out.close (); } catch (ioException ex) {ex.printstacktrace (); }} /*File gambar batch* / public static void batchimgfile (String srcfile, String tragetFile) {file folder = file baru (tragetFile); // folder yang menghasilkan file gambar srcfolder = file baru (srcfile); if (! folder.exists () ||! folder.isdirectory ()) folder.mkdirs (); Prosesor Imageprocesser = Imageprocesser baru (); File [] fileList = srcfolder.listFiles (); untuk (int i = 0; i <fileList.length; i ++) {if (! Distist [i] .file ()) lanjutkan; Processor.tobitmapConvert (daftar file [i]); processor.saveastxt (tragetfile+"/"+(i+1)+". txt"); System.out.println (FileList [i] .getName ()+"dikonversi!"); } System.out.println ("Semua IMG dikonversi!"); }}Klik untuk melihat: Tautan referensi.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.