base64与图片之间的转换

实现:base64与图片之间的转换 + 上传的简单实现

 1 package com.thinkive.bank.mass.plat.bus.common.util;
 2
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.OutputStream;
 9 import java.text.SimpleDateFormat;
10 import java.util.Date;
11
12 import sun.misc.BASE64Decoder;
13 import sun.misc.BASE64Encoder;
14
15 /**
16  * base64与图片之间的转换
17  * @author xuwx
18  *
19  */
20 public class GenerateImage {
21     /**
22      * @描述 base64转换成图片
23      * @param imgStr
24      * @return
25      */
26     public boolean decoder(String imgStr) {
27         if (null == imgStr)
28             return false;
29         BASE64Decoder decoder = new BASE64Decoder();
30         try {
31             byte[] b = decoder.decodeBuffer(imgStr);
32             for (int i = 0; i < b.length; i++) {
33                 if (b[i] < 0) {
34                     b[i] += 256;
35                 }
36             }
37             String rootPath=Thread.currentThread().getContextClassLoader().getResource("").toString(); //文件保存根目录位置
38             rootPath=rootPath.substring(rootPath.indexOf("/")); //重新组合根目录位置
39             String lastPath=rootPath+"/uploadFile/"; //最终组合的保存文件夹
40             File file=new File(lastPath);
41             if(!file.exists())
42             {
43                 file.mkdir();
44             }
45             String nowTime=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); //时间戳,防止文件重名
46             String imgFilePath = lastPath+"电子签名("+nowTime+ ").jpg";
47             OutputStream out = new FileOutputStream(imgFilePath);
48             out.write(b);
49             out.flush();
50             out.close();
51             return true;
52         } catch (Exception e) {
53             return false;
54         }
55     }
56
57     /**
58      * @描述 图片转换成base64
59      * @param imgStr
60      * @return
61      */
62     public String encoder()
63     {
64         File file=new File("H:/图片/金属合金.jpg");
65         FileInputStream input=null;
66         byte[] data =null;
67         try {
68              input=new FileInputStream(file);
69              data=new byte[input.available()];
70              input.read(data);
71              input.close();
72         } catch (FileNotFoundException e1) {
73             e1.printStackTrace();
74         } catch (IOException e1) {
75             e1.printStackTrace();
76         }
77
78         BASE64Encoder e=new BASE64Encoder();
79         return e.encode(data);
80     }
81     /**
82      * 测试代码
83      * @param args
84      */
85     public static void main(String[] args) {
86         GenerateImage gen=new GenerateImage();
87         String encoderStr=gen.encoder();
88         gen.decoder(encoderStr);
89     }
90 }
时间: 2024-10-10 14:31:11

base64与图片之间的转换的相关文章

VUE Base64编码图片展示与转换图片

图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址,使用 base64 传输图片文件可以节省一个 http 请求,图片的 base64 编码可以算是前端优化的一环 VUE Base64编码图片展示 <img :src="icon"> export default { data() { icon: 'data:image/png;base64,,XXXXX...', } } 图片在线转换Base64:http://imgbase64.d

java实现图片与base64字符串之间的转换

java实现图片与base64字符串之间的转换 package com.zxc.testjava.ant; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import sun.misc.BASE64Decoder; import sun.misc

OpenCV图片类cv::Mat和QImage之间进行转换(好多相关文章)

在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ##### // Shallow copy QImage mat2qimage_ref(cv::Mat &m, QImage::Format format) { return QImage(m.data, m.cols, m.rows, m.step, format); } // Deep copy QI

base64和图片的转换

/// <summary> /// base64转图片 /// </summary> /// <param name="strBase64"></param> /// <param name="pathName"></param> public static void Base64StringToImage(string strBase64,string pathName ) { String

Stream 和 byte[] 之间的转换

北京网站建设-恒动时空一. 二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = 0; Image img = Image.FromStream(ms); ms.Close(); this.pictureBox1.Image 二. C#中byte[]与string的转换代码1. System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding

FlyCapture2 fc2Image OpenCV IplImage Conversion 两种图像格式之间的转换

fc2Image是FlyCapture SDK的C语言库中的图片格式,由于在Windows上的MinGW无法编译FlyCapture2的C++库,只能使用C语言库,所以当我们在同时使用OpenCV的图像格式IplImage时,有时候就需要两种格式相互转换.如果需要FlyCapture2 Image和OpenCV IplImage之间的转换,可以参见我之前的博客OpenCV IplImage FlyCapture2 Image Conversion 两种图像类的相互转化.我们先来分别看看两种图像格

移动端适配方案以及rem和px之间的转换

背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 1)首先,选取一款手机的屏幕宽高作为基准(以前是iPhone4的320×480,现在更多的是iphone6的375×667). 2)对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言:

HTML中字体单位px pt em之间的转换

在实现打印功能时,遇到一个问题,使用px作为单位在不同的机器或者打印机上打印出的字体大小不一样,所以经过查询,发现使用pt为单位能够进行物流适配,下面是各单位之间的转换: 定义字体大小有常见三种单位,px.em.pt px px是pixel缩写,是基于像素的单位.在浏览网页过程中,屏幕上的文字.图片等会随屏幕的分辨率变化而变化,一个100px宽度大小的图片,在800×600分辨率下,要占屏幕宽度的1/8,但在1024×768下,则只占约1/10.所以如果在定义字体大小时,使用px作为单位,那一旦

base64转图片上传

不成功,但是有一定的借鉴性 /** * @param base64Codes *            图片的base64编码 */ function sumitImageFile(base64Codes){//debugger console.log(convertBase64UrlToBlob(base64Codes)); var formData = new FormData();   //这里连带form里的其他参数也一起提交了,如果不需要提交其他参数可以直接FormData无参数的构造