图片视频二进制流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 ...
随机推荐
- 【随笔记】XR872 Codec 驱动移植和应用程序实例(附芯片调试方法)
XR872 的 SDK 是我目前接触过那么多款 MCU 的 SDK 中,唯一一个将框架和 RTOS 结合的非常完美的 SDK .无论是代码风格还是框架的设计,看起来都很赏心悦目,而且是源码开源.希望能 ...
- 百万级数据excel导出功能如何实现?
前言 最近我做过一个MySQL百万级别数据的excel导出功能,已经正常上线使用了. 这个功能挺有意思的,里面需要注意的细节还真不少,现在拿出来跟大家分享一下,希望对你会有所帮助. 原始需求:用户在U ...
- 用户行为分析模型实践(三)——H5通用分析模型
作者:vivo 互联网大数据团队- Zhao Wei.Tian Fengbiao.Li Xiong 本文从提升用户行为分析效率角度出发,详细介绍了H5埋点方案规划,埋点数据采集流程,提供可借鉴的用户行 ...
- Node.js学习笔记----day01
认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.Node.js的简介 Node.js是什么 (1)Node.js不是一门语言 (2) Node.js也不是库,也不是框架 (3)Node. ...
- 详谈pytest中的xfail
详谈pytest中的xfail 原文链接: https://docs.pytest.org/en/7.2.x/how-to/skipping.html 链接中详细阐述了skip和xfail两种情况 x ...
- 【DS】1.2
top-iron man 算法 效率度量 时间T=T(n) 1.顺序忽略2.只选一个基本操作分析3.多层嵌套只考虑最深的循环循环了几次 test1: test2: 空间 原地工作:算法所需内 ...
- vivo版本发布平台:带宽智能调控优化实践-平台产品系列03
vivo 互联网平台产品研发团队 - Peng Zhong 随着分发规模地逐步增长,各企业对CDN带宽的使用越来越多.并且,各类业务使用CDN的场景各式各样,导致带宽会不断地出现骤增骤降等问题.基于成 ...
- Redhat7.6搭建LAMP环境
关闭防火墙和 selinux# systemctl stop firewalld systemctl disable firewalld 禁用 Selinux vim /etc/selinux/con ...
- 【TS】数组和元组
数组 在ts中,定义数组类型语法: let 变量名 : 数据类型[] = [值1,值2,值3] let arr1 : number[] = [1,2,3,4] console.log(arr1); / ...
- 三元运算符整体执行情况:Object obj = true? Integer.valueOf(1): Double.valueOf(2.0);
/* * @author YAM */public class Test01 { public static void main(String[] args) { Object obj = true? ...