图片转base64使用JSON传输
要传输的JSON格式:
{
"orderId":"0001",
"cargoReceiptNo":"iVBORw0KGgoAAAANSUhEUgAAALIAAAAYCAYAAABeDafgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABNpJREFUeNrsW0FunDAUnalyAQ7QDVHV7MkRJurkAKQ3gCMMuUAzc4RB6gEadpWqJApHGBZdNV2ETfedI9D/p8+R4xiwSUhg5C9ZEDAfYz8/v/89mR5dnU/Iqomhff/6Y2pTn2z6Ifs5ceasT3vnusDZPtjB0Bo0nU7dqOy5VVUV0OGSikcloTFPO/oZLiN//PanQpkZ1o/EMy/VBpJbPhWvY+d6rwCEqNKb/wyfst32/AkMYh9AXj+n3WOQFgvDelEP777v4hcgvqfjpue+iV6xL/owr+XvvQHylsqMWNZvYWNm7QD1hyCLuB1ln+0BewU1t8ORADmRzlPqt2JfgZwDDG0ME6FePiCNf0zl5A3YmM0noA8ezNDEh1S4r+J9zlowONOmQSM29sBAaRMDMoNRuaTyF/qPl/4lywAedFkPki6+pyK09pLP+ZpGSy7w/BJ+Q/X+7vx6HlKpqGi/g67PcH9h0TcqUNVAadbSF2ulLxZNup77RxbPuLbAsw8+pPozpb836uRCn3O/biopYqt5VwR/VZ2/oWtkHiCPABu2MFPaMAg8qBsMLteLcQxwPVQGPkEdtgzniY75pOczyImnzDO/5nsrnhQE1kABsYegJ6N6K0NZEeLdwkr4f9QvOmAiU7BBv3nSdyypGAd30P9LqR07HwD3Gr5C6R27DAXGwlZG8bvWyuQV/sJRAPn35/clJMOiAcg56tUFXpcY7ENawnZpHiorLP2xyl53pxcZFTExCj7nazXvZj/sN27SeATSBG1YA7xy5L6VJo6JqWDI6N3suzDQyuuGoCqwaENd3WWL7OkieQLTZMDQN0R27EmsHGiCPF/DRuqH8sDFCMJUnZY3sXlbuyxzn2cS+00gJfgbzgjoW0N28jRAyZSjVkeDvQJFuvEEExPaJtgq8D26laqEvxNNm7qk2ArJ36oJ5Ae/5l9242rsmuvfnL7KrgWxbUagFUFfrIC0pPt5C3sVLRFx1+xCaRXczK9LAm+8WxKv51u0P6HrNgBSGa2Uvi0Tk0QMMuthsLWO2dRNiFTWqm3BrCLd5FXiWCKN3NRng50o/mZ1LC0YubIoXeo/l5UjBHcTpORmBmzqWzJNv5H6f72cAsS5qS5uyFZkErh08iKqY6+uO2mG6cc+/W3HlrXQReWRaZAH8wb4LcFDmuyxXm6TFbrc8UKJ8IMX0KSjtcEDWQr6ZCBndL1t9peWQUyvRsAVkf6xFHx1ZWMTk3PKpTIxFhr97YD8CsbLsE+yQvzQxGRZzoVWfGvW5nwyJEUMXcx6ObTIH3fdeg6loOlRhgHpMs75RjbpNwfk57FyDlbhgSno78IQ/Ls0V01eddYCEO+FQOyDfVPoZNbLOaL+J/llTTtDTVtWeF4taqaAN3w8aOJSky67RduCsQP5YERtTdH5RoEKB0A0iJwmYhbn3ScxmB6CxQCsHdakfcKjq/MSdZO704uyY7tFLjtRgr8V7+whk3HckIbTZSuSBi0dath8hZTZbc0ELcYO5jH9sD5D1JpZRL0ZNKnQ2GsceeAOG7IasaRj/a7sTAAVz8c1QD2D78saYHoaYOZNk1fDvCHuFegLeUtfTLCTychtKra0bZ6Z3Jza1f90NXHmzDGyM2cOyM4ckJ05G1nWwva3E+4/RJ0Nyv4JMAD4YPGJjdAeMAAAAABJRU5ErkJggg==",
"cargoReceiptLineNo":"000009_01"
}
后台代码:
@RequestMapping(value = {"/photoJson"})
@ResponseBody
public PhysicalIdCheckDto testPhotoJson(@RequestBody PhysicalIdCheckDto physicalIdCheckDto) {
String imgStr = physicalIdCheckDto.getCargoReceiptNo();
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream out = new FileOutputStream("E:\\img\\logo.jpg");
out.write(b);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("输出JSON:"+physicalIdCheckDto);
return physicalIdCheckDto;
}
base64转图片
/**
* @Description: 将base64编码字符串转换为图片
* @Author:
* @CreateTime:
* @param imgStr base64编码字符串
* @param path 图片路径-具体到文件
* @return
*/
public static boolean generateImage(String imgStr, String path) {
if (imgStr == null)
return false;
BASE64Decoder decoder = new BASE64Decoder();
try {
// 解密
byte[] b = decoder.decodeBuffer(imgStr);
// 处理数据
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream out = new FileOutputStream(path);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
图片转base64
/**
* @Description: 根据图片地址转换为base64编码字符串
* @Author:
* @CreateTime:
* @return
*/
public static String getImageStr(String imgFile) {
InputStream inputStream = null;
byte[] data = null;
try {
inputStream = new FileInputStream(imgFile);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 加密
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}
测试:
/**
* 示例
*/
public static void main(String[] args) {
String strImg = getImageStr("F:/86619-106.jpg");
System.out.println(strImg);
generateImage(strImg, "F:/86619-107.jpg");
}
图片转base64使用JSON传输的更多相关文章
- json序列化.xml序列化.图片转base64.base64转图片.生成缩略图.IEnumerable<TResult> Select<TSource, TResult>做数据转换的五种方式
JSON序列化 /// <summary> /// JSON序列化 /// </summary> public static class SPDBJsonConvert { ...
- 【PHP】图片转换为base64,经过post传输后‘+’会变成 ‘空格’
图片转换为base64,经过post传输后‘+’会变成 ‘空格’, 需要用PHP 处理一下 $str= $_POST['img_data']; $str= str_replace(' ','+',$s ...
- jquery 图片转为base64
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...
- 关于图片的Base64编码
什么是Base64编码 Base64编码是一种图片处理格式,通过特定的算法将图片编码成一长串字符串,在页面上显示的时候,可以用该字符串来代替图片的url属性. base64编码就是长得像下面这样子的代 ...
- 图片的Base64编码
Base64编码是一种图片处理格式,通过特定的算法将图片编码成一长串字符串,在页面上显示的时候,可以用该字符串来代替图片的url属性. 我们可以来看一下实际的效果 Base64编码效果 在上图中,我们 ...
- json传输二进制的方案【转】
本文转自:http://wiyi.org/binary-to-string.html json 是一种很简洁的协议,但可惜的是,它只能传递基本的数型(int,long,string等),但不能传递by ...
- js小工具---本地图片转换为base64编码数据
今天用jmeter对图片对比进行性能测试,post请求为json请求,图片为Base64编码后的图片数据.所以需要将一张本地图片生成base64编码,找到一个js小工具,记录在这儿便于以后复用. 效果 ...
- HTML5 JS 压缩图片,并取得图片的BASE64编码上传
基本过程 1) 调用 FileReader 的 reader.readAsDataURL(img); 方法, 在其onload事件中, 将用户选择的图片读入 Image对象. 2) 在image对象的 ...
- 用javascript实现base64编码器以及图片的base64编码
前面的话 base-64作为常见的编码函数,在基本认证.摘要认证以及一些HTTP扩展中得到了大量应用.在前端领域,也常常把图片转换为base-64编码在网络中传输.本文将详细介绍base64的原理及用 ...
随机推荐
- Logistic回归实战篇之预测病马死亡率
利用sklearn.linear_model.LogisticRegression训练和测试算法. 示例代码: import numpy as np import matplotlib.pyplot ...
- mysql——单表查询——聚合函数——概念
使用聚合函数查询 group by关键字通常和聚合函数一起使用 .count()函数 count()函数用来统计记录的条数 举例:使用count()函数统计employee表的记录数 select c ...
- 爬取网易云音乐评论!python 爬虫入门实战(六)selenium 入门!
说到爬虫,第一时间可能就会想到网易云音乐的评论.网易云音乐评论里藏了许多宝藏,那么让我们一起学习如何用 python 挖宝藏吧! 既然是宝藏,肯定是用要用钥匙加密的.打开 Chrome 分析 Head ...
- hive_server2的权限控制
CDH的core-sit开启: 第一个false表示用系统用户来和hive用户的权限绑定,但经测试并没有生效,所以可以改为true 第二项设置成ALL,表示创建者对其创建的表拥有所有的权限,这样也是比 ...
- [转帖]软件的变革与 AOT
软件的变革与 AOT https://www.colabug.com/851475.html 文章写的很牛B .. 前言 AOT 即 Ahead of Time Compilation,即运行前编,与 ...
- [BJWC2008] Gate Of Babylon
题目链接 容斥+隔板法+Lucas定理 #include <bits/stdc++.h> using namespace std; const int N=1e5+10; int n,m, ...
- 2018icpc宁夏邀请赛_L_Continuous Intervals
题意 给定一个序列,定义连续区间为区间的数排序后,任意两个相邻的数之差不超过1. 分析 假设区间最大值为\(max\),最小值为\(min\),不同数个数为\(cnt\),那么问题转化为求满足\(ma ...
- (转)终于有人把Elasticsearch原理讲透了!
终于有人把Elasticsearch原理讲透了! 小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 来源:互联网侦察 | 2019-04-08 ...
- 剑指offer-二进制中1的个数-进制转化-补码反码原码-python
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. ''' 首先判断n是不是负数,当n为负数的时候,直接用后面的while循环会导致死循环,因为负数 向左移位的话最高位补1 ...
- ALV打印不显示打印界面的问题
用OO的方式screen0 不画屏幕会产生这个问题,解决办法就是不用screen0 要自己画一个区域