hz-zhhq-app-service/greenH5modul/.svn/pristine/c2/c2b60e1dffce8407685c9b946c8...

186 lines
4.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.nationalelectric.greenH5.utils;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import com.sgcc.uap.mdd.model.utils.StringUtil;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/*import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;*/
public class Base64Utils {
public static void main(String[] args) throws Exception {
// 本地图片地址
String url = "d:/1.jpg";
// 在线图片地址
String string = "http://bpic.588ku.com//element_origin_min_pic/17/03/03/7bf4480888f35addcf2ce942701c728a.jpg";
String str = Base64Utils.ImageToBase64ByLocal(url);
// String ste = Base64Utils.ImageToBase64ByOnline(string);
System.out.println(str);
// Base64Utils.Base64ToImage(str,
// "C:/Users/Administrator/Desktop/test1.jpg");
// Base64Utils.Base64ToImage(ste,
// "C:/Users/Administrator/Desktop/test2.jpg");
}
/**
* 本地图片转换成base64字符串
*
* @param imgFile
* 图片本地路径
* @return
*
* @author ZHANGJL
* @dateTime 2018-02-23 14:40:46
*/
public static String ImageToBase64ByLocal(String imgFile) {// 将图片文件转化为字节数组字符串并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
File file = new File(imgFile);
if (!file.exists()) {
return null;
}
// 读取图片字节数组
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (Exception e2) {
}
}
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
if (data == null) {
return null;
}
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}
/**
* 在线图片转换成base64字符串
*
* @param imgURL
* 图片线上路径
* @return
*
* @author ZHANGJL
* @dateTime 2018-02-23 14:43:18
*/
public static String ImageToBase64ByOnline(String imgURL) {
ByteArrayOutputStream data = new ByteArrayOutputStream();
InputStream is = null;
try {
// 创建URL
URL url = new URL(imgURL);
byte[] by = new byte[1024];
// 创建链接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
is = conn.getInputStream();
// 将内容读取内存中
int len = -1;
while ((len = is.read(by)) != -1) {
data.write(by, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
if (data == null) {
return null;
}
return encoder.encode(data.toByteArray());
}
/**
* base64字符串转换成图片
*
* @param imgStr
* base64字符串
* @param imgFilePath
* 图片存放路径
* @return
*
* @author ZHANGJL
* @dateTime 2018-02-23 14:42:17
*/
public static boolean Base64ToImage(String imgStr, String imgFilePath) { // 对字节数组字符串进行Base64解码并生成图片
if (StringUtil.isEmpty(imgStr)) // 图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
OutputStream out = null;
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr.trim());
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
return true;
} catch (Exception e) {
return false;
} finally {
if (out != null) {
try {
out.close();
} catch (Exception e2) {
}
}
}
}
public static String en(String data) {
if (data == null || data.trim().equals("")) {
return null;
}
byte[] bb = data.getBytes();
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(bb);
}
}