接口上传base64编码图片
package com.*.util; import java.io.FileInputStream; import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date; import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder; public class Base64ImgUtils {
public static void main(String[] args) {
String strImg = GetImageStr();
System.out.println(strImg);
GenerateImage(strImg);
} /**
* 图片转化成base64字符串
* GetImageStr
* 2016年8月31日下午3:37:40
* @param
* @return
*/
public static String GetImageStr() {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String imgFile = "D:/486e407765c21edd9cbffca69717efb1.jpg";// 待处理的图片
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
String imghead="data:image/jpg;base64,";//头
return imghead+encoder.encode(data);// 返回Base64编码过的字节数组字符串
} /**
* base64字符串转化成图片
* GenerateImage
* 2016年8月31日下午3:33:12
* @param
* @return
*/
public static String GenerateImage(String imgStr) { // 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null){ // 图像数据为空
return "";
}
String classPath = new Base64ImgUtils().getClass().getResource("").getPath();
String path = classPath.substring(, classPath.indexOf("WEB-INF"));
System.out.println(path);
BASE64Decoder decoder = new BASE64Decoder();
try {
String imghead=imgStr.substring(,imgStr.indexOf(";")).replace("data:image/", ".");//获取图片扩展名
imgStr=imgStr.substring(imgStr.indexOf(",")+);//图片内容 // Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = ; i < b.length; ++i) {
if (b[i] < ) {// 调整异常数据
b[i] += ;
}
}
// 生成jpeg图片
String filename="upload/"+new Date().getTime()+imghead;//名称
String imgFilePath =path+"/"+filename;// 新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return filename;
} catch (Exception e) {
return "";
}
} }
接口上传base64编码图片的更多相关文章
- 前端上传 base64 编码图片到七牛云存储
参考文档 如何上传base64编码图片到七牛云 调试过程 文档中分别有 java 和 html 的 demo,可以根据文档示例调试. 下面是我调试的过程,可以作为参考,特别注意的是,如果需要给文件起名 ...
- 如何上传base64编码图片到七牛云
接口说明 POST /putb64/<Fsize>/key/<EncodedKey>/mimeType/<EncodedMimeType>/crc32/<Cr ...
- 移动端图片上传base64编码
$base64 = "/9j/4AAQSkZJRgABAQEAkACQAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAA ...
- 小程序上传base64的图片,可上传多张
微信小程序上传图片转化为base64格式 clickimage: function(e) { var index = e.currentTarget.dataset.index; var count ...
- php上传文件与图片到七牛的实例详解
上传文件到七牛最简单的方式就是使用七牛官方最新的SDK 用composer安装PHP SDK composer require qiniu/php-sdk 上传文件到七牛 use Qiniu\Auth ...
- 上传附件(图片base64)封装方法
上传附件(图片base64)封装方法 php 上传附件,base64 项目中封装的接口: public function error($msg){ header("Content-type: ...
- vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式
进入正题 1. PC端调用摄像头拍照上传base64格式到后台,这个没什么花里胡哨的骚操作,直接看代码 (canvas + video) <template> <div> &l ...
- 上传base64格式的图片到服务器
上传base64格式的图片到服务器 /**bash64上传图片 * @param $base64 图片的base64数据 * @param $path 保存路径 */ function base64_ ...
- Vue directive自定义指令+canvas实现H5图片压缩上传-Base64格式
前言 最近优化项目-手机拍照图片太大,回显速度比较慢,使用了vue的自定义指令实现H5压缩上传base64格式的图片 canvas自定义指令 Vue.directive("canvas&qu ...
随机推荐
- MyView.java 自己画的view
package myapplication21.lum.com.mycanvas; import android.content.Context;import android.graphics.Can ...
- C# 高性能 TCP 服务的多种实现方式Cowboy.Sockets
本篇文章的主旨是使用 .NET/C# 实现 TCP 高性能服务的不同方式,包括但不限于如下内容: APM 方式,即 Asynchronous Programming Model TAP 方式,即 ...
- __I、 __O 、__IO是什么意思?怎么用?
出处:http://www.chuxue123.com/forum.php?mod=viewthread&tid=122&ctid=3 __I. __O .__IO是什么意思?这是ST ...
- leetcode 78. 子集(c++)
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3]输出:[ [3], [1], [2], ...
- Git学习及使用
一.认知git理论 1.git出现的背景 版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上 ...
- STM32 HAL库关于串口中断烧录程序后可以正常运行,断电重启后无法进入中断的问题分析以及解决方法
1.情景描述: 最近在做一个项目,X86的上位机通过串口控制MCU,使用串口中断接收上位机数据时,MCU在上电的情况下烧录程序,可以正常接收上位机的数据,在断电重启后,一直进入不了中断回调函数,上电的 ...
- MySQL点滴记录
1.查询所用引擎 show engines;
- 19、NumPy——线性代数
NumPy 线性代数 NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明: 函数 描述 dot 两个数组的点积,即元素对应相乘. vdot 两个向量的 ...
- CSU 1092 Barricade
1092: Barricade Time Limit: 1 Sec Memory Limit: 32 MBSubmit: 240 Solved: 71[Submit][Status][Web Bo ...
- C#面试 笔试题 六
1.String str=new String("a")和String str = "a"有什么区别? String str = "a"; ...