16进制字符串与JPG图片互转
字符串与图片互转
昨天在完成一个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图片互转相关推荐
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!编辑
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- C# 数据互转 16进制16进制字符串字符串
1.字符串过滤 or 提取字符串 提取字符串:在C# .net开发中 "ToString()"方法是最常见的,用于将文本转为字符串: 字符串过滤:在处理字符串数据或者hex数据时, ...
- mysql longblob 转换_php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!...
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- C++实现字节数组与16进制字符串互转,字符串转16进制字符串
1 无符号字节数组转16进制字符串 std::string bytesToHexString(const BYTE* bytes,const int length) {if (bytes == NUL ...
- Swift 16进制字符串与UIColor互转
今天在写项目的时候遇到这么个问题,需要将UIColor转成16进制字符串,然后写入沙盒进行本地缓存,于是一番操作下,给UIColor加了两个扩展. 第一个convenience init方法并不陌生, ...
- C# 中字符串string和字节数组byte[]的转换,16 进制字符串转 int的方法
string和byte[]互转 string转byte[] byte[] byteArray = System.Text.Encoding.Default.GetBytes(str); byte[] ...
- 16进制字符串转10进制数值
16进制字符串转10进制数值 描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. 数据范围:保证结果在 1≤n≤2^31−1 输入描述:输入一个十六进制的数值字符串. 输出描述:输出该 ...
最新文章
- 一张图:AI领域里各领风骚的BAT三巨头
- “===” 也有不靠谱的时候
- 【Qt for Android】OpenGL ES 绘制彩色立方体
- docker安装nextcloud(附nextcloud win7客户端下载教程)
- css:before和after中的content属性
- 中国接种环行业市场供需与战略研究报告
- UIKit框架-基础控件Swift版本: 7.UISwitch方法/属性详解
- 教你手写Java层handler机制
- 多边形最大内接圆的简单画法
- 域名和IP地址的区别
- 数字电视 星座图 matlab,数字电视 MER 及星座图剖析
- C/C++:打印乘法口诀表
- Stop Staring: Facial Modeling and Animation Done Right
- C++【STL】【string类的使用】
- 实战之从阿里云dataworks的maxcomputer中导出数据
- [英语阅读]芭比娃娃“五十知天命”
- idea设置java-google-style
- 互联网公司平均薪资Top8 , 阿里勇夺第一。
- 位置 2 的索引无效。数组索引必须为正整数或逻辑值。
- 微软CRM 2011 Beta Show
热门文章
- 微信上h5页面点击文件下载链接没反应,微信内直接下载app方案
- 硬盘无法识别怎么办?
- JavaWeb之JavaMail使用
- protege查询时,提示没有reasoner可用怎么解决
- 旷世神作,腾讯高工手写13万字JDK源码笔记,从底层远吗 带你飙向实战
- 计算机毕业设计JAVA高校心理教育辅导mybatis+源码+调试部署+系统+数据库+lw
- 已解决!PageHelper不分页几种情况的解决方法
- 锚点定位——如何设置锚点居页面顶部距离,锚点定位并距离顶部一定偏移
- 2022年中职网络空间赛项A模块总和(所有答案都有)
- 分数化小数(用变量控制小数位数)