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

发布时间 - 2026-01-10 23:08:16    点击率:

实例如下:

//图片到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 换成 FileInputStream

以上这篇Java 图片与byte数组互相转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java  # byte数组  # Java任意长度byte数组转换为int数组的方法  # java对象转成byte数组的3种方法  # java中两个byte数组实现合并的示例  # Java整型数与网络字节序byte[]数组转换关系详解  # Java中byte、byte数组与int、long的转换详解  # Java 字节数组类型(byte[])与int类型互转方法  # Java中字符串与byte数组之间的相互转换  # Java基本类型与byte数组之间相互转换方法  # 基于java中byte数组与int类型的转换(两种方法)  # java byte数组与16进制间相互转换的示例  # 给大家  # 转化成  # 希望能  # 这篇  # 小编  # 大家多多  # 换成了  # buf  # output  # int  # input  # FileImageInputStream  # ByteArrayOutputStream  # File  # FileNotFoundException  # catch  # printStackTrace  # close  # read  # numBytesRead 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 用yum安装MySQLdb模块的步骤方法  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何在阿里云服务器自主搭建网站?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  JavaScript如何实现错误处理_try...catch如何捕获异常?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  python中快速进行多个字符替换的方法小结  如何在腾讯云服务器快速搭建个人网站?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  nodejs redis 发布订阅机制封装实现方法及实例代码  ,交易猫的商品怎么发布到网站上去?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  C语言设计一个闪闪的圣诞树  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  利用vue写todolist单页应用  Laravel如何使用模型观察者?(Observer代码示例)  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何基于云服务器快速搭建网站及云盘系统?  如何用花生壳三步快速搭建专属网站?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  高端建站三要素:定制模板、企业官网与响应式设计优化  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  C#如何调用原生C++ COM对象详解  如何在阿里云购买域名并搭建网站?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  个人网站制作流程图片大全,个人网站如何注销?  Laravel如何使用查询构建器?(Query Builder高级用法)  如何自定义建站之星模板颜色并下载新样式?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何在宝塔面板中创建新站点?  如何在IIS中新建站点并解决端口绑定冲突?  javascript中闭包概念与用法深入理解  javascript基本数据类型及类型检测常用方法小结  如何在建站之星绑定自定义域名?  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  如何在 React 中条件性地遍历数组并渲染元素  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Laravel集合Collection怎么用_Laravel集合常用函数详解  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Android利用动画实现背景逐渐变暗  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何快速生成专业多端适配建站电话?