图片转bas464编码字符串 发表于 2017-03-31 | 分类于 java | 在用markdown编写文档的时候,发现图片上传比较麻烦。特别是在网络中上传的时候,文本迁移还容易,但是图片就很难保存下来了,所以就在网上看到一个解决办法,就是把图片转换为base64编码 优点:本地存储 缺点:转换要执行代码,其次,转成的图片太长,影响源markdown文档阅读下面是代码: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455public class ImageToStr { public static boolean generateImage(String imgStr, String path) { if (imgStr == null) return false; BASE64Decoder decoder = new BASE64Decoder(); try { // 解密 byte[] b = decoder.decodeBuffer(imgStr); // 处理数据 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } OutputStream out = new FileOutputStream(path); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } /** * @return * @Description: 根据图片转换为base64编码字符串 * @Author: * @CreateTime: */ public static String getImageStr(String imgFile) { InputStream inputStream = null; byte[] data = null; try { inputStream = new FileInputStream(imgFile); data = new byte[inputStream.available()]; inputStream.read(data); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } // 加密 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data); } public static void main(String[] args) { String strImg = getImageStr("C:\\Users\\tang\\Desktop\\7.png"); // 在浏览器中使用时,需要加上下面的前缀方可 System.out.println("data:image/png;base64," + strImg); }}