package org.my.util; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class Config { private static String filePath = "C:/Users/issuser/Desktop/a-z"; public static int[][] getBinArr(String c){ int[][] arr = new int[16][8]; File f = new File(filePath+"/"+c+".txt"); try { BufferedReader reader = new BufferedReader(new FileReader(f)); for(int i=0;i<16;i++){ String s = reader.readLine(); for(int j=0;j<8;j++){ if('1'==s.charAt(j)){ arr[i][j] = 1; }else{ arr[i][j] = 0; } } } reader.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return arr; } public static int[][] reorg(int[][] a,int[][] b){ int al = a[0].length; int bl = b[0].length; int[][] r = new int[a.length][al+bl]; for(int i=0;i<a.length;i++){ for(int j=0;j<a[i].length;j++){ r[i][j]=a[i][j]; } } for(int i=0;i<b.length;i++){ for(int j=0;j<b[i].length;j++){ r[i][j+al]=b[i][j]; } } return r; } } package org.my.main; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.imageio.ImageIO; import org.my.util.Config; public class TestABC { private static Map<String,int[][]> map = new HashMap<String,int[][]>(); public static void main(String[] args) throws IOException { initMap(); String str = "The first step is as good as half over.***pYou never know your luck.***pSow nothing, reap nothing.***pThe wealth of the mind is the only wealth."; List<int[][]> list = new ArrayList<int[][]>(); String[] strarr = str.split("\\*\\*\\*p"); for(String strs : strarr){ list.add(toArr(strs)); } //int[][] tmp = toArr(str); BufferedImage bi = ImageIO.read(new File("C:/Users/issuser/Desktop/desktop.jpg")); writeLine(bi,560,360,list); ImageIO.write(bi, "jpg", new FileOutputStream(new File("C:/Users/issuser/Desktop/desktop-bak.jpg"))); } private static void out(int[][] tmp){ for(int i=0;i<tmp.length;i++){ for(int j=0;j<tmp[i].length;j++){ System.out.print(tmp[i][j]); } System.out.println(); } } private static void initMap(){ String[] cs = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o", "p","q","r","s","t","u","v","w","x","y","z","space","comma","point"}; for(int i=0;i<cs.length;i++){ map.put(cs[i], Config.getBinArr(cs[i])); } } private static int[][] toArr(String str){ int[][] tmp = Config.getBinArr(str.charAt(0)+""); for(int i=1;i<str.length();i++){ if(str.charAt(i)==' '){ tmp = Config.reorg(tmp, map.get("space")); }else if(str.charAt(i)==','){ tmp = Config.reorg(tmp, map.get("comma")); }else if(str.charAt(i)=='.'){ tmp = Config.reorg(tmp, map.get("point")); }else{ tmp = Config.reorg(tmp, map.get(""+str.charAt(i))); } } return tmp; } private static void writeLine(BufferedImage bi,int x,int y,List<int[][]> list){ for(int[][] data : list){ insert(bi,x,y,data); y+=16; } } private static void insert(BufferedImage bi,int x,int y,int [][] data){ for(int i=0;i<data.length;i++){ for(int j=0;j<data[i].length;j++){ if(data[i][j]==1){ bi.setRGB(x+j, y+i, 0x00ffffff); } } } } }
字符文件地址
https://files.cnblogs.com/files/cfdx/a-z.rar