예제는 다음과 같습니다.
//图片到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은 FileIn으로 대체됩니다. putStream
관련 학습 권장 사항: Java 비디오 튜토리얼
위 내용은 Java 이미지와 바이트 배열을 서로 변환하는 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!