字符串与图片互转

昨天在完成一个16进制转字符串的任务,觉得有必要记录一下。

import javax.imageio.stream.FileImageOutputStream;
import java.io.*;
public class Hex2Image {public static void main(String[] args) throws Exception {String str=null;try{StringBuffer sb = new StringBuffer();FileInputStream fis = new FileInputStream("D:\\111.jpg");//图片路径//BufferedInputStream bis = new BufferedInputStream(fis);java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();byte[] buff = new byte[1024];int len = 0;while ((len = fis.read(buff)) != -1){bos.write(buff, 0, len);}// 得到图片的字节数组byte[] result = bos.toByteArray();// 字节数组转成十六进制str = toHexString(result);PrintWriter pw = new PrintWriter(new FileWriter("aaa.txt"));pw.println(str);pw.close();}catch (IOException e){e.printStackTrace();}System.out.println(str);byte[] t=fromHexString(str);byte2image(t, "D:\\sfz10.jpg");//存放图片路径}static public String toHexString(byte[] ba) {StringBuilder sbuf = new StringBuilder();for (byte b : ba) {String s = Integer.toHexString((int) (b & 0xff));if (s.length() == 1) {sbuf.append('0');}sbuf.append(s);}return sbuf.toString();}public static byte[] fromHexString(String s) {int length = s.length() / 2;byte[] bytes = new byte[length];for (int i = 0; i < length; i++) {bytes[i] = (byte) ((Character.digit(s.charAt(i * 2), 16) << 4) | Character.digit(s.charAt((i * 2) + 1), 16));}return bytes;}public static 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();}}}

在处理接口请求到的16进制图片时,注意看一下有无标识符,我就在这里卡了一上午,眼拙没看出来…
当时我请求到的字符串是有"\x"标识符。
这里我的处理方法是:replace("\\").replace("x")
参考文章:https://www.cnblogs.com/qgc88/p/5555154.html

16进制字符串与JPG图片互转相关推荐

  1. php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...

  2. php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...

  3. php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!编辑

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...

  4. C# 数据互转 16进制16进制字符串字符串

    1.字符串过滤 or 提取字符串 提取字符串:在C# .net开发中 "ToString()"方法是最常见的,用于将文本转为字符串: 字符串过滤:在处理字符串数据或者hex数据时, ...

  5. mysql longblob 转换_php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!...

    php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...

  6. C++实现字节数组与16进制字符串互转,字符串转16进制字符串

    1 无符号字节数组转16进制字符串 std::string bytesToHexString(const BYTE* bytes,const int length) {if (bytes == NUL ...

  7. Swift 16进制字符串与UIColor互转

    今天在写项目的时候遇到这么个问题,需要将UIColor转成16进制字符串,然后写入沙盒进行本地缓存,于是一番操作下,给UIColor加了两个扩展. 第一个convenience init方法并不陌生, ...

  8. C# 中字符串string和字节数组byte[]的转换,16 进制字符串转 int的方法

    string和byte[]互转 string转byte[] byte[] byteArray = System.Text.Encoding.Default.GetBytes(str); byte[] ...

  9. 16进制字符串转10进制数值

    16进制字符串转10进制数值 描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. 数据范围:保证结果在 1≤n≤2^31−1 输入描述:输入一个十六进制的数值字符串. 输出描述:输出该 ...

最新文章

  1. 一张图:AI领域里各领风骚的BAT三巨头
  2. “===” 也有不靠谱的时候
  3. 【Qt for Android】OpenGL ES 绘制彩色立方体
  4. docker安装nextcloud(附nextcloud win7客户端下载教程)
  5. css:before和after中的content属性
  6. 中国接种环行业市场供需与战略研究报告
  7. UIKit框架-基础控件Swift版本: 7.UISwitch方法/属性详解
  8. 教你手写Java层handler机制
  9. 多边形最大内接圆的简单画法
  10. 域名和IP地址的区别
  11. 数字电视 星座图 matlab,数字电视 MER 及星座图剖析
  12. C/C++:打印乘法口诀表
  13. Stop Staring: Facial Modeling and Animation Done Right
  14. C++【STL】【string类的使用】
  15. 实战之从阿里云dataworks的maxcomputer中导出数据
  16. [英语阅读]芭比娃娃“五十知天命”
  17. idea设置java-google-style
  18. 互联网公司平均薪资Top8 , 阿里勇夺第一。
  19. 位置 2 的索引无效。数组索引必须为正整数或逻辑值。
  20. 微软CRM 2011 Beta Show

热门文章

  1. 微信上h5页面点击文件下载链接没反应,微信内直接下载app方案
  2. 硬盘无法识别怎么办?
  3. JavaWeb之JavaMail使用
  4. protege查询时,提示没有reasoner可用怎么解决
  5. 旷世神作,腾讯高工手写13万字JDK源码笔记,从底层远吗 带你飙向实战
  6. 计算机毕业设计JAVA高校心理教育辅导mybatis+源码+调试部署+系统+数据库+lw
  7. 已解决!PageHelper不分页几种情况的解决方法
  8. 锚点定位——如何设置锚点居页面顶部距离,锚点定位并距离顶部一定偏移
  9. 2022年中职网络空间赛项A模块总和(所有答案都有)
  10. 分数化小数(用变量控制小数位数)