当前位置: 移动技术网 > IT编程>开发语言>Java > Java 图片与byte数组互相转换实例

Java 图片与byte数组互相转换实例

2019年07月22日  | 移动技术网IT编程  | 我要评论
实例如下: //图片到byte数组 public byte[] image2byte(string path){ byte[] data = null;

实例如下:

//图片到byte数组
 public byte[] image2byte(string path){
  byte[] data = null;
  fileimageinputstream input = null;
  try {
   input = new fileimageinputstream(new file(path));
   bytearrayoutputstream output = new bytearrayoutputstream();
   byte[] buf = new byte[1024];
   int numbytesread = 0;
   while ((numbytesread = input.read(buf)) != -1) {
   output.write(buf, 0, numbytesread);
   }
   data = output.tobytearray();
   output.close();
   input.close();
  }
  catch (filenotfoundexception ex1) {
   ex1.printstacktrace();
  }
  catch (ioexception ex1) {
   ex1.printstacktrace();
  }
  return data;
 }
 //byte数组到图片
 public void byte2image(byte[] data,string path){
  if(data.length<3||path.equals("")) return;
  try{
  fileimageoutputstream imageoutput = new fileimageoutputstream(new file(path));
  imageoutput.write(data, 0, data.length);
  imageoutput.close();
  system.out.println("make picture success,please find image in " + path);
  } catch(exception ex) {
   system.out.println("exception: " + ex);
   ex.printstacktrace();
  }
 }
 //byte数组到16进制字符串
 public string byte2string(byte[] data){
  if(data==null||data.length<=1) return "0x";
  if(data.length>200000) return "0x";
  stringbuffer sb = new stringbuffer();
  int buf[] = new int[data.length];
  //byte数组转化成十进制
  for(int k=0;k<data.length;k++){
   buf[k] = data[k]<0?(data[k]+256):(data[k]);
  }
  //十进制转化成十六进制
  for(int k=0;k<buf.length;k++){
   if(buf[k]<16) sb.append("0"+integer.tohexstring(buf[k]));
   else sb.append(integer.tohexstring(buf[k]));
  }
  return "0x"+sb.tostring().touppercase();

 } 

文件解析:

fileimageoutputstream 换成了 fileoutputstream
fileimageinputstream 换成 fileinputstream

以上这篇java 图片与byte数组互相转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网