图片转base64使用JSON传输
2024-08-29 22:23:49
要传输的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");
}
最新文章
- Cocos2dx实现光影效果的两种方式
- [No00005B] word快速插入当前时间&;怎样一次性删除文档中的全部链接
- margin-top无效的问题解决方法
- TC SRM 593 DIV2 1000
- OnScrollListener分页加载
- PHP局部变量与全局变量
- ios显示艺术字字体颜色渐变
- 如何在ios手机端的Safari浏览器 中“查看网页源代码”
- CSP内容安全策略
- 【java链表 】java 头插法建单链表
- 五种基于RGB色彩空间统计的皮肤检测算法
- shiro salt
- Swift基础之自定义PUSH和POP跳转动画
- Runc 简介
- Android App渗透测试工具drozer,Qark,Androguard
- .Net Core 使用 System.Drawing.Common 部署到CentOS上遇到的问题
- Hibernate-在Eclipse(Oxygen)中安装Hibernatetools插件
- 检查URL的可用性脚本
- ASP.NET Core使用Razor页面
- CodeForces - 441D: Valera and Swaps(置换群)
热门文章
- 【CUDA】CUDA框架介绍
- Oracle中的=:
- [转帖][Linux]systemd和sysV
- ubuntu 安装 Anaconda2和3的tips
- 删除项目中所有的__pycache__ 文件
- sqlalchemy query函数可用参数有哪些?
- JavaEE--JSP详解
- sql server 获取随机数函数RAND()和RAND(x)
- redis为什么使用单线程 ,还那么快,单线程是怎么实现的
- [转载]Ubuntu如何切换到命令行模式