1. //图片到byte数组
  2. public byte[] image2byte(String path){
  3. byte[] data = null;
  4. FileImageInputStream input = null;
  5. try {
  6. input = new FileImageInputStream(new File(path));
  7. ByteArrayOutputStream output = new ByteArrayOutputStream();
  8. byte[] buf = new byte[1024];
  9. int numBytesRead = 0;
  10. while ((numBytesRead = input.read(buf)) != -1) {
  11. output.write(buf, 0, numBytesRead);
  12. }
  13. data = output.toByteArray();
  14. output.close();
  15. input.close();
  16. }
  17. catch (FileNotFoundException ex1) {
  18. ex1.printStackTrace();
  19. }
  20. catch (IOException ex1) {
  21. ex1.printStackTrace();
  22. }
  23. return data;
  24. }
  1. //byte数组到图片
  2. public void byte2image(byte[] data,String path){
  3. if(data.length<3||path.equals("")) return;
  4. try{
  5. FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
  6. imageOutput.write(data, 0, data.length);
  7. imageOutput.close();
  8. System.out.println("Make Picture success,Please find image in " + path);
  9. } catch(Exception ex) {
  10. System.out.println("Exception: " + ex);
  11. ex.printStackTrace();
  12. }
  13. }
  14. //byte数组到16进制字符串
  15. public String byte2string(byte[] data){
  16. if(data==null||data.length<=1) return "0x";
  17. if(data.length>200000) return "0x";
  18. StringBuffer sb = new StringBuffer();
  19. int buf[] = new int[data.length];
  20. //byte数组转化成十进制
  21. for(int k=0;k<data.length;k++){
  22. buf[k] = data[k]<0?(data[k]+256):(data[k]);
  23. }
  24. //十进制转化成十六进制
  25. for(int k=0;k<buf.length;k++){
  26. if(buf[k]<16) sb.append("0"+Integer.toHexString(buf[k]));
  27. else sb.append(Integer.toHexString(buf[k]));
  28. }
  29. return "0x"+sb.toString().toUpperCase();
  30. }

文件解析:
FileImageOutputStream 换成了 FileOutputStream
FileImageInputStream 换成 FileInputStream

转自:http://blog.csdn.net/huang9012/article/details/18241539/

Java 图片与byte数组互相转换的更多相关文章

  1. 图片和base64编码字符串 互相转换,图片和byte数组互相转换

    图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ...

  2. java 实现 图片与byte 数组互相转换

    package webgate; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import ja ...

  3. Java 基础类型转换byte数组, byte数组转换基础类型

    Java 基础类型转换byte数组, byte数组转换基础类型 Java类型转换 java类对象转化为byte数组

  4. Java 图片提取RGB数组 RGBOfCharMaps (整理)

    package demo; /** * Java 图片提取RGB数组 RGBOfCharMaps (整理) * 声明: * 和ImageCombining配合使用的工具,这里是提取图片的R.G.B生成 ...

  5. Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  6. 深入 JAVA里面关于byte数组和String之间的转换问题

    把byte转化成string,必须经过编码.  例如下面一个例子:  importjava.io.UnsupportedEncodingException; publicclass test{ pub ...

  7. delphi十六进制字符串hex转byte数组互相转换bmp图片

    procedure Hex2Png(str: string; out png: TPngObject); var stream: TMemoryStream; begin if not Assigne ...

  8. Java 文件和byte数组转换

    /** * 获得指定文件的byte数组 */ private byte[] getBytes(String filePath){ byte[] buffer = null; try { File fi ...

  9. 图片和byte[]数组互转

    一.图片转成byte[]数组. import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io ...

随机推荐

  1. sys.argv[]用法

    #-*- coding: utf-8 -*- """ sys.argv 用来获取命令行参数 sys.argv[0] 表示当前执行文件 "-k".sta ...

  2. uboot的jumptable_init函数分析

    一.函数说明 函数功能:安装系统函数指针 函数位置:common/exports.c 二.函数分析 void jumptable_init (void) { int i; gd->jt = (v ...

  3. Redux1

    Redux 写在前面 写React也有段时间了,一直也是用Redux管理数据流,最近正好有时间分析下源码,一方面希望对Redux有一些理论上的认识:另一方面也学习下框架编程的思维方式. Redux如何 ...

  4. Oracle OCI-22053:溢出错误

    Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle 数值转换 为公共语言运行库数据类型时,小数点后边的位数可能过多,这会导致此错误.   查询29万笔数据,报此错误,分析应该 ...

  5. zip file 压缩文件

    有时候我们希望 upload 文件后自动压缩, 可以节省空间. 可以使用微软提供的压缩代码 Install-Package System.IO.Compression.ZipFile -Version ...

  6. 6月A项目的总结

    对JS效果的要求有几点: 1.顶部导航栏鼠标经过动画. 2.Slider轮播图带有左右箭头,底部有缩略图,缩略图和大图都会自动播放. 3.右侧有个三个按钮的导航菜单,第一个按钮回到整个页面顶部,第二个 ...

  7. hdu 5128 The E-pang Palace

    http://acm.hdu.edu.cn/showproblem.php?pid=5128 题意:给定N个点,选出其中8个点组成两个矩形,使得两个矩形的面积和最大. 思路:找出所有的矩形,然后枚举, ...

  8. CentOS 5升级Python版本(2.4>2.7)

    安装SALT时,需要这样作,公司有一批REDHAT5的,弄起来... 然后却是: Missing Dependency: python(abi) = 2.6 is needed by package ...

  9. Intra Luma Prediction

    在宏块的帧内预测过程中,有四种宏块类型:I_4x4,I_8x8,I16x16,I_PCM.他们都需要在相邻块做去块滤波之前进行帧内预测. 亮度帧内预测的总体流程 1-4获取当前block的帧内预测模式 ...

  10. 「Poetize9」升降梯口

    3056: 升降梯口 Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 43  Solved: 42[Submit][Status] Description ...