English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مثال على تحويل الصور إلى عدد البايتات و العكس بالـ Java

实例如下:

//图片到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);
  }
   System.out.println("Exception: " + ex);
   ex.printStackTrace();
  }
 }
 //تحويل مصفوفة البايتات إلى 字符串 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];
  //تحويل مصفوفة البايتات إلى عدد عشري
  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 هو كل محتوى الذي قدمته لكم، آمل أن يكون مرجعًا جيدًا وأن تدعموا دائمًا تعليمات النفخ.

التي قد تهمك