图片视频二进制流base64加密
一:读取图片或者视频,转换二进制流,进行Base64加密
-
@PostMapping("/base64Encoder")
-
public StringBuilder changeImageTobase64(String imageFilePath) {
-
InputStream in = null;
-
byte[] imageByte = null;
-
if (imageFilePath == null || "".equals(imageFilePath)) {
-
//默认文件地址,可以是图片或者是地址
-
// imageFile="C:/Users/zbh19/Pictures/Saved Pictures/艾玛沃特森.jpeg";
-
imageFilePath="C:/Users/zbh19/Pictures/Saved Pictures/123.mp4";
-
}
-
try {
-
//读取文件
-
in = new FileInputStream(imageFilePath);
-
int size = in.available();
-
imageByte = new byte[size];
-
//从输入流中将数据读入一个 imageByte字节 数组中。
-
in.read(imageByte);
-
//关闭此文件输入流并释放与此流有关的所有系统资源。
-
in.close();
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
//如果是视频,转成二进制或者是转成Base64加密后,字符长度会非常长
-
//举例:1.1M的视频大概是将近120w字符,所以String类型肯定不行,String是65535(127kb)超出会报错
-
//而且,String会占用常量池,常量池的内存占用,一般很难被清理掉,
-
//这么个长的字符串很容易造成OOM
-
//StringBuilder 长度是 int 的最大值 2的32次幂 ,21亿 个字符
-
StringBuilder stringBuilder = new StringBuilder();
-
// 对字节数组转换成Base64字符串
-
// String base64String = Base64.getEncoder().encodeToString(imageByte);
-
stringBuilder.append(Base64.getEncoder().encodeToString(imageByte));
-
changeBase64ToImage(stringBuilder);
-
return null;
-
}
二:将base64格式的字符串转换成二进制流,并转换成对应的文件进行存储
-
/**
-
* 将base64格式的字符串转换成二进制流进行存储
-
*/
-
@PostMapping("/base64Decoder")
-
public boolean changeBase64ToImage(StringBuilder base64String) {
-
//base64格式字符串为空,返回false
-
if (base64String == null) {
-
return false;
-
}
-
try {
-
//对Base64字符串进行解码,转化为二进制流
-
byte[] imageByte = Base64.getDecoder().decode(base64String.toString());
-
//生成图片路径和文件名
-
String pathString = "D:/test/" + UUID.fastUUID() + ".mp4";
-
OutputStream out = new FileOutputStream(pathString);
-
out.write(imageByte);
-
out.flush();
-
out.close();
-
return true;
-
} catch (IOException e) {
-
return false;
-
}
-
}
图片视频二进制流base64加密的更多相关文章
- php读取图片成二进制流输出
header( "Content-type: image/jpeg");$PSize = filesize('1.jpg');$picturedata = fread(fopen( ...
- 【转载】C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte
C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte 转载:http://www.itdos.com/Mvc/20150302/0741255.htm ...
- 【转载】C#将图片转换为二进制流调用
在C#中可以使用MemoryStream类.BinaryFormatter类等来操作图片,将图片读取到二进制数据流中,最终转成二进制数据流进行调用,详细的实现如下方法所示. private byte[ ...
- 【转载】C#将图片以二进制流的方式存入数据库
在C#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据.此文将介 ...
- [转] js实现对图片的二进制流md5计算
//计算图片md5 function img_MD5(img_path,callback) { plus.io.resolveLocalFileSystemURL(img_path, function ...
- 使用C#向Sql Sever中存取网络图片和本地图片(二进制流的形式)
先是做普通的,存储我们本地的图片,将它转化为二进制流存储到数据库对应的表中. 代码如下: string path = "../../A.jpg"; FileStream fs = ...
- Unity C#图片转换二进制流、字符串互转
图片转二进制流转换图片互转 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
- iOS中用json接收图片的二进制流
标题可能说的有点混乱,再好好描述一下我遇到的问题: 我负责做一款App的iOS版本,服务器和Android版本都开发完了.服务器的图片存的不是路径,而是在数据库中的blob流对象,由于要求所有数据都用 ...
- QTP图片验证/图片比较/二进制流对比法
图片验证主要是文件对比,其中我们可以利用二进制的方法读取图片信息,然后进行对比,达到对比的效果,本例子利用fso对象的文件流的方法实现,代码如下: Public Function CompareFil ...
- C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte
using System.IO; /// <summary> /// WebApi返回图片 /// </summary> public HttpResponseMessage ...
随机推荐
- List_集合_介绍&常用方法-ArrayList集合
List_集合_介绍&常用方法 我们掌握了Collection接口的使用后,再来看看Collection接口中的子类,他们都具备那些特性呢?接下来,我们一起学习Collection中的常用几个 ...
- 【随笔记】Tina 系统的 ADB、声卡、网卡、串口多路共存
全志 Tina 系统的 USB Gadget 配置方法,随笔记录,实测为 R311 平台,其它平台应该通用. 一.配置内核 二.编译驱动并加载 # UAC insmod usb_f_uac1.ko ...
- 真正“搞”懂HTTPS协议17之TLS握手
经过前两章的学习,我们知道了通信安全的定义以及TLS对其的实现~有了这些知识作为基础,我们现在可以正式的开始研究HTTPS和TLS协议了.嗯--现在才真正开始. 我记得之前大概聊过,当你在浏览器的地址 ...
- P1_Day1.学习目标
目标 能够知道如何创建小程序项目 能够清楚小程序项目的基本组成结构 能够知道小程序页面由几个部分组成 能够知道小程序中常见的组件如何使用 能够知道小程序如何进行协同开发和发布 学习目录 小程序简介 第 ...
- .NET Core Redis的简单使用
1.Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库. 2.Redis主要特点 Redis支持数据的持久化 Redis支持多种数据结构 Redi ...
- 【Vue】vue项目目录介绍 es6的导入导出语法 vue项目开发规范 Vue项目编写步骤
目录 昨日回顾 今日内容 0 vue-cli创建项目 node.js环境 创建vue-cli项目 1 vue项目目录介绍 node_modules index.html app.vue package ...
- 安卓逆向 crmak的动态调试
1.java代码分析 检测是否输入密码,输入了就进行对比 由此,我们需要进入SO进行动态调试了 2.SO调试 过程太复杂,凌晨才搞出来,就直接给答案了,有文件检测和端口检测 还有调试检测,都需要干掉
- 【KAWAKO】Pydub-某些函数的使用方法
目录 EQ 源码 其中使用的_eq函数源码 测试代码 EQ 源码 seg:AudioSegment音频 focus_freq:需要调整的中心频率 bandwidth:调整的频率范围 channel_m ...
- Angular 发布IIS
1.IIS服务器需要安装插件 安装 Url https://www.iis.net/downloads/microsoft/url-rewrite 2.修改配置 在src目录下,添加 web.conf ...
- 解决MSsql 中文变成"?"的问题
ALTER DATABASE IMStest SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER database IMStest collate Chine ...