最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Java 图片与byte数组互相转换实例
时间:2022-06-29 01:41:37 编辑:袖梨 来源:一聚教程网
代码如下 | 复制代码 |
//图片到byte数组 publicbyte[] image2byte(String path){ byte[] data =null; FileImageInputStream input =null; try{ input =newFileImageInputStream(newFile(path)); ByteArrayOutputStream output =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(FileNotFoundException ex1) { ex1.printStackTrace(); } catch(IOException ex1) { ex1.printStackTrace(); } returndata; } //byte数组到图片 publicvoidbyte2image(byte[] data,String path){ if(data.length<3||path.equals(""))return; try{ FileImageOutputStream imageOutput =newFileImageOutputStream(newFile(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进制字符串 publicString byte2string(byte[] data){ if(data==null||data.length<=1)return"0x"; if(data.length>200000)return"0x"; StringBuffer sb =newStringBuffer(); intbuf[] =newint[data.length]; //byte数组转化成十进制 for(intk=0;k buf[k] = data[k]<0?(data[k]+256):(data[k]); } //十进制转化成十六进制 for(intk=0;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
相关文章
- 王者荣耀S38赛季有什么更新 12-25
- 王者荣耀S38赛季有什么更新 王者荣耀S38赛季更新内容介绍 12-25
- 世界之外12.25有什么更新 世界之外12月25日更新内容介绍 12-25
- 光遇12.25红石碎片在哪里 光遇12月25日红石碎片位置攻略 12-25
- 奇迹暖暖绚光引途第二天怎么玩 绚光引途day2庆祝之舞搭配攻略 12-25
- 无限暖暖拍照打卡位置在哪里 无限暖暖世界巡游位置全攻略 12-25