Java对图片Base64编码
package base64;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Scanner;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class imageToBase64 {
static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in) ;
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 欢迎使用W_Jp的Base64编码 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“输入图片地址:”);
String path = scanner.next() ;
if(!getImageBinary(path).equals(“”))
{
System.out.printf(“n” + getImageBinary(path) + “nn”);
System.out.printf(“是否导出内容?(Y/N):”);
String boo = scanner.next() ;
if(boo.equals(“Y”) || boo.equals(“y”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 1.导出现Base64编码到TXT文档 **n”);
System.out.printf(“tt** 2.导出Base64解码后的png图片 **n”);
System.out.printf(“tt** 3.同时操作以上两个 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“输入您的选择:”);
boo = scanner.next() ;
if(boo.equals(“1”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 温馨提示:导出后文件名为wjp.txt **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“输入Base64编码的导出地址:”);
String toTxtPath = scanner.next() ;
if(base64StringToTxt(getImageBinary(path), toTxtPath).equals(“success”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 导出成功 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
} else if(boo.equals(“2”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 温馨提示:导出后文件名为wjp.png **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“输入解码后图片的导出地址:”);
String toImgPath = scanner.next() ;
if(base64StringToImage(getImageBinary(path), toImgPath).equals(“success”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 导出成功 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
} else if(boo.equals(“3”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 温馨提示:导出后文件名为wjp.txt/wjp.png **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“输入导出地址(两个文件都会在这个目录下):”);
String toBothPath = scanner.next() ;
base64StringToImage(getImageBinary(path), toBothPath);
if(base64StringToTxt(getImageBinary(path), toBothPath).equals(“success”)){
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 导出成功 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
} else {
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 您输入的编 无效!!! 程序意外退出了!!! **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
} else {
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
}
}
static String getImageBinary(String path){
File f = new File(path);
BufferedImage bi;
try {
bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, “jpg”, baos);
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
} catch (IOException e) {
// e.printStackTrace();
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 您输入的地址无效!!! 程序意外退出了!!! **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
return “” ;
}
static String base64StringToImage(String base64String, String path){
try {
byte[] bytes1 = decoder.decodeBuffer(base64String);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
BufferedImage bi1 =ImageIO.read(bais);
File w2 = new File(path + “/wjp.png”);
ImageIO.write(bi1, “jpg”, w2);
} catch (Exception e) {
// e.printStackTrace();
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 您输入的地址无效!!! 程序意外退出了!!! **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
return “err” ;
}
return “success” ;
}
static String base64StringToTxt(String base64String, String path){
File filename = new File(path + “/wjp.txt”);
RandomAccessFile mm = null ;
try {
mm = new RandomAccessFile(filename,”rw”);
try {
mm.writeBytes(base64String);
} catch (IOException e) {
//e.printStackTrace();
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 写入失败 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
return “err” ;
}
} catch (FileNotFoundException e) {
//e.printStackTrace();
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** 创建txt失败 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
return “err” ;
} finally {
try {
if(mm!=null){
mm.close();
}
} catch (IOException e) {
//e.printStackTrace();
System.out.println();
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** RandomAccessFile关闭失败 **n”);
System.out.printf(“tt*********************************************n”);
System.out.printf(“tt** Thanks!!! **n”);
System.out.printf(“tt↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑n”);
}
}
return “success” ;
}
}
HTML对Base64解码
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gbk”>
<title></title>
<script type=”text/javascript”>
//hideElement() , showElement()
function hideElement(id){
document.getElementById(id).style.display=”none”;
}
function showElement(id){
document.getElementById(id).style.display=””;
}
function wjp(id){
if(id == 1){
var values = document.getElementById(“code”).value ;
var str = “<span><img src=”data:image/gif;base64
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!