Java 图片与byte数组互相转换实例
实例如下:
//图片到byte数组 publicbyte[]image2byte(Stringpath){ byte[]data=null; FileImageInputStreaminput=null; try{ input=newFileImageInputStream(newFile(path)); ByteArrayOutputStreamoutput=newByteArrayOutputStream(); byte[]buf=newbyte[1024]; intnumBytesRead=0; while((numBytesRead=input.read(buf))!=-1){ output.write(buf,0,numBytesRead); } data=output.toByteArray(); output.close(); input.close(); } catch(FileNotFoundExceptionex1){ ex1.printStackTrace(); } catch(IOExceptionex1){ ex1.printStackTrace(); } returndata; } //byte数组到图片 publicvoidbyte2image(byte[]data,Stringpath){ if(data.length<3||path.equals(""))return; try{ FileImageOutputStreamimageOutput=newFileImageOutputStream(newFile(path)); imageOutput.write(data,0,data.length); imageOutput.close(); System.out.println("MakePicturesuccess,Pleasefindimagein"+path); }catch(Exceptionex){ System.out.println("Exception:"+ex); ex.printStackTrace(); } } //byte数组到16进制字符串 publicStringbyte2string(byte[]data){ if(data==null||data.length<=1)return"0x"; if(data.length>200000)return"0x"; StringBuffersb=newStringBuffer(); intbuf[]=newint[data.length]; //byte数组转化成十进制 for(intk=0;k<data.length;k++){ buf[k]=data[k]<0?(data[k]+256):(data[k]); } //十进制转化成十六进制 for(intk=0;k<buf.length;k++){ if(buf[k]<16)sb.append("0"+Integer.toHexString(buf[k])); elsesb.append(Integer.toHexString(buf[k])); } return"0x"+sb.toString().toUpperCase(); }
文件解析:
FileImageOutputStream换成了FileOutputStream
FileImageInputStream换成FileInputStream
以上这篇Java图片与byte数组互相转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。