一:读取图片或者视频,转换二进制流,进行Base64加密


  1. @PostMapping("/base64Encoder")
  2. public StringBuilder changeImageTobase64(String imageFilePath) {
  3. InputStream in = null;
  4. byte[] imageByte = null;
  5. if (imageFilePath == null || "".equals(imageFilePath)) {
  6. //默认文件地址,可以是图片或者是地址
  7. // imageFile="C:/Users/zbh19/Pictures/Saved Pictures/艾玛沃特森.jpeg";
  8. imageFilePath="C:/Users/zbh19/Pictures/Saved Pictures/123.mp4";
  9. }
  10. try {
  11. //读取文件
  12. in = new FileInputStream(imageFilePath);
  13. int size = in.available();
  14. imageByte = new byte[size];
  15. //从输入流中将数据读入一个 imageByte字节 数组中。
  16. in.read(imageByte);
  17. //关闭此文件输入流并释放与此流有关的所有系统资源。
  18. in.close();
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. }
  22. //如果是视频,转成二进制或者是转成Base64加密后,字符长度会非常长
  23. //举例:1.1M的视频大概是将近120w字符,所以String类型肯定不行,String是65535(127kb)超出会报错
  24. //而且,String会占用常量池,常量池的内存占用,一般很难被清理掉,
  25. //这么个长的字符串很容易造成OOM
  26. //StringBuilder 长度是 int 的最大值 2的32次幂 ,21亿 个字符
  27. StringBuilder stringBuilder = new StringBuilder();
  28. // 对字节数组转换成Base64字符串
  29. // String base64String = Base64.getEncoder().encodeToString(imageByte);
  30. stringBuilder.append(Base64.getEncoder().encodeToString(imageByte));
  31. changeBase64ToImage(stringBuilder);
  32. return null;
  33. }

二:将base64格式的字符串转换成二进制流,并转换成对应的文件进行存储


  1. /**
  2. * 将base64格式的字符串转换成二进制流进行存储
  3. */
  4. @PostMapping("/base64Decoder")
  5. public boolean changeBase64ToImage(StringBuilder base64String) {
  6. //base64格式字符串为空,返回false
  7. if (base64String == null) {
  8. return false;
  9. }
  10. try {
  11. //对Base64字符串进行解码,转化为二进制流
  12. byte[] imageByte = Base64.getDecoder().decode(base64String.toString());
  13. //生成图片路径和文件名
  14. String pathString = "D:/test/" + UUID.fastUUID() + ".mp4";
  15. OutputStream out = new FileOutputStream(pathString);
  16. out.write(imageByte);
  17. out.flush();
  18. out.close();
  19. return true;
  20. } catch (IOException e) {
  21. return false;
  22. }
  23. }

图片视频二进制流base64加密的更多相关文章

  1. php读取图片成二进制流输出

    header( "Content-type: image/jpeg");$PSize = filesize('1.jpg');$picturedata = fread(fopen( ...

  2. 【转载】C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte

    C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte 转载:http://www.itdos.com/Mvc/20150302/0741255.htm ...

  3. 【转载】C#将图片转换为二进制流调用

    在C#中可以使用MemoryStream类.BinaryFormatter类等来操作图片,将图片读取到二进制数据流中,最终转成二进制数据流进行调用,详细的实现如下方法所示. private byte[ ...

  4. 【转载】C#将图片以二进制流的方式存入数据库

    在C#开发应用程序的过程中,图片一般会存放在文件系统中,当然图片也可以二进制的方式存放到数据库中,不过一般不建议存放在数据库中,因为图片占用的空间还是挺大的,特殊情况下可以考虑将图片存在数据.此文将介 ...

  5. [转] js实现对图片的二进制流md5计算

    //计算图片md5 function img_MD5(img_path,callback) { plus.io.resolveLocalFileSystemURL(img_path, function ...

  6. 使用C#向Sql Sever中存取网络图片和本地图片(二进制流的形式)

    先是做普通的,存储我们本地的图片,将它转化为二进制流存储到数据库对应的表中. 代码如下: string path = "../../A.jpg"; FileStream fs = ...

  7. Unity C#图片转换二进制流、字符串互转

    图片转二进制流转换图片互转 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  8. iOS中用json接收图片的二进制流

    标题可能说的有点混乱,再好好描述一下我遇到的问题: 我负责做一款App的iOS版本,服务器和Android版本都开发完了.服务器的图片存的不是路径,而是在数据库中的blob流对象,由于要求所有数据都用 ...

  9. QTP图片验证/图片比较/二进制流对比法

    图片验证主要是文件对比,其中我们可以利用二进制的方法读取图片信息,然后进行对比,达到对比的效果,本例子利用fso对象的文件流的方法实现,代码如下: Public Function CompareFil ...

  10. C#.NET WebApi返回各种类型(图片/json数据/字符串),.net图片转二进制流或byte

    using System.IO; /// <summary> /// WebApi返回图片 /// </summary> public HttpResponseMessage  ...

随机推荐

  1. angular Ionic CLI组件建立,使用图标,弹窗,按钮,卡片,列表,无尽滚动,刷新

  2. Java 进阶P-5.1+P-5.2

    城堡游戏 一.城堡游戏介绍:1.这个程序的任务是通过玩家的输入的方向(纯文字)在虚构的城堡内移动(以纯文字作为移动后的返回结果).2.这个程序接受help.bye.go south.go north. ...

  3. Redis02 在linux安装部署(单机版)

    1 安装gcc编译器 进入linux,执行命令 sudo apt-get install -y gcc Centos使用yum命令替代apt-get sudo yum install -y gcc 2 ...

  4. K3S 系列文章-5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout'分析与解决

    开篇 <K3s 系列文章> <Rancher 系列文章> 问题概述 20220606 5G IoT 网关设备同时安装 K3S Server, 但是 POD 却无法访问互联网地址 ...

  5. 使用brew安装历史版本的几种方式

    背景 在 mac osx 下, 大部分的软件都是使用 homebrew 进行管理的, 可以方便的进行软件的安装,更新,删除等等, 大部分情况下 homebrew 的仓库只会存在一份最新的软件版本, 有 ...

  6. 鼎阳SDS6204示波器的EPICS IOC调试

    经过雷雷师弟的努力,该款示波器终于调试成功,相关文件现放在gitee仓库里: https://gitee.com/lup9304/siglent/commit/99ce00d195facd87fa1c ...

  7. Istio 升级后踩的坑

    背景 前段时间我们将 istio 版本升级到 1.12 后导致现有的应用监控有部分数据丢失(页面上显示不出来). 一个是应用基础信息丢失. 再一个是应用 JVM 数据丢失. 接口维度的监控数据丢失. ...

  8. 抛砖系列之k8s HorizontalPodAutoscaler(HPA)

    前言 "大伙得眼里有活,看见同事忙的时候要互相帮助,这样我们团队才能快速成长,出成绩,多干点活没坏处的,领导都看在眼里记在心里,不会亏待大伙." 看到这也许你还有点懵,不是要讲k8 ...

  9. vue-fullpage全屏插件使用

    直入主题:vue项目中想做一个全屏翻滚的效果,vue-fullpage 就很不错 下面介绍vue-fullpage 的使用方法,这里封装成了vue的一个指令的形式来进行使用 1.安装vue-fullp ...

  10. log 函数

    什么是对数 对数用 log 符号来表示.根据底数的不同,log 可以变换成 lg.ln.lg 是以 10 为底的对数,ln 是以 e 为底的对数. logax=y,是一个以 a 为底,x 为真数的对数 ...