首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

二进制与字符串变换(图片转换)

2013-12-20 
二进制与字符串转换(图片转换)?将一个图片转换成二进制编码,再将一个二进制字符串转换成为图片实例:??publ

二进制与字符串转换(图片转换)

?将一个图片转换成二进制编码,再将一个二进制字符串转换成为图片实例:

?

?

public class Test{public static void main(String[] args) {try{                  // 将图片转换成字符串          File f = new File("c:\\biao.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,还原成图片显示        OutputStream o = new FileOutputStream("c:\\878789.png");          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{      }  }/** * 二进制转字符串 * @param b byte数组 * @return 二进制字符串 */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();}/** * 字符串转二进制 * @param str 字符串 * @return byte数组 */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;}}}

?

热点排行