图片-字符串互转

来源:互联网 发布:php后端技术架构 编辑:程序博客网 时间:2024/05/13 11:12

java 转换图片为字符串,将字符串转换成图片显示,该方法只适用于比较小的图片传输,50K以内:

// author:yswang// date:2009/10/09try{OutputStream o = response.getOutputStream();// 将图片转换成字符串File f = new File("f:\\Vista.png");FileInputStream fis = new FileInputStream( f );byte[] bytes = new byte[fis.available()];fis.read(bytes);fis.close();// 生成字符串String imgStr = byte2hex( bytes );System.out.println( imgStr);// 将字符串转换成二进制,用于显示图片// 将上面生成的图片格式字符串 imgStr,还原成图片显示byte[] imgByte = hex2byte( imgStr );InputStream in = new ByteArrayInputStream( imgByte );byte[] b = new byte[1024];int nRead = 0;while( ( nRead = in.read(b) ) != -1 ){o.write( b, 0, nRead );}o.flush();o.close();in.close();}catch(Exception e){e.printStackTrace();}finally{}public static String byte2hex(byte[] b) // 二进制转字符串{ StringBuffer sb = new StringBuffer(); String stmp = ""; for (int n = 0; n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1){ sb.append("0" + stmp); }else{ sb.append(stmp); } } return sb.toString();}public static byte[] hex2byte(String str) { // 字符串转二进制 if (str == null) return null; str = str.trim(); int len = str.length(); if (len == 0 || len % 2 == 1) return null; byte[] b = new byte[len / 2]; try { for (int i = 0; i < str.length(); i += 2) { b[i / 2] = (byte) Integer.decode("0X" + str.substring(i, i + 2)).intValue(); } return b; } catch (Exception e) { return null; } }
转载于:http://piziwang.iteye.com/blog/483767

原创粉丝点击