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

网友投稿 292 2023-06-10


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

实例如下:

//图片到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 = iDFjstOnput.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

buf[k] = data[k]<0?(data[k]+256):(data[k]);

}

//十进制转化成十六进制

for(int k=0;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

buf[k] = data[k]<0?(data[k]+256):(data[k]);

}

//十进制转化成十六进制

for(int k=0;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

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:在SpringMVC框架下实现文件的上传和下载示例
下一篇:EOLINKER 清明节假期服务通知
相关文章

 发表评论

暂时没有评论,来抢沙发吧~