今天做项目,突然发现图片居然能转成字符串,字符串也能转成图片。
接下来让我们进行代码演示吧!
1 /** 2 * 字符串转图片 3 * @param imgStr --->图片字符串 4 * @param filename --->图片名 5 * @return 6 */ 7 public static boolean generateImage(String imgStr, String filename) { 8 9 if (imgStr == null) { 10 return false; 11 } 12 BASE64Decoder decoder = new BASE64Decoder(); 13 try { 14 // 解密 15 byte[] b = decoder.decodeBuffer(imgStr); 16 // 处理数据 17 for(int i = 0; i < b.length; ++i) { 18 if (b[i] < 0) { 19 b[i] += 256; 20 } 21 } 22 OutputStream out = new FileOutputStream("D:/Systems/"+filename); 23 out.write(b); 24 out.flush(); 25 out.close(); 26 return true; 27 } catch (IOException e) { 28 // TODO Auto-generated catch block 29 e.printStackTrace(); 30 } 31 return false; 32 33 } 34 35 /** 36 * 图片转字符串 37 * @param filePath --->文件路径 38 * @return 39 */ 40 public static String getImageStr(String filePath) { 41 InputStream inputStream = null; 42 byte[] data = null; 43 try { 44 inputStream = new FileInputStream(filePath); 45 data = new byte[inputStream.available()]; 46 inputStream.read(data); 47 inputStream.close(); 48 } catch (IOException e) { 49 e.printStackTrace(); 50 } 51 // 加密 52 BASE64Encoder encoder = new BASE64Encoder(); 53 return encoder.encode(data); 54 } 55 56 /* 57 * 测试代码 58 */ 59 public static void main(String[] args) { 60 String imageStr = getImageStr("D:\001.jpg"); 61 System.out.println(imageStr); 62 boolean generateImage = generateImage(imageStr, "001.jpg"); 63 System.out.println(generateImage); 64 }
大功告成!
哈哈!