import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.codehaus.plexus.util.Base64;
/**
* 将64位图像编码转成图像
* @author Administrator
*
*/
public class Base64GenerateImapge {
/**
* 生成图像
* @param imgStr
* @param imgFilePath
* @param suffix 图像的后缀
* @return
*/
public String GenerateImage(String imgStr,String imgFilePath,String suffix){
if (imgStr.length()<1) // 图像数据为空
return "无图像数据";
if (imgFilePath.length()<1)//图像路径
return "请传入文件路径";
if (suffix.length()<1) //图像格式后缀
return "请传入图像文件的后缀";
Base64 base64=new Base64();
byte[] b=base64.decodeBase64(imgStr.getBytes());
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
String imgPath=imgFilePath+"."+suffix;
try {
OutputStream out = new FileOutputStream(imgPath);
out.write(b);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
return "图像生成失败";
}
return "图片生成成功,保存在"+imgPath;
}
/**
* 生成jpeg图像,返回图像路径
* @param imgStr
* @param imgFilePath
* @return
*/
public Map GenerateImageJpeg(String imgStr,String imgFilePath){
Map map=new HashMap();
if (imgStr.length()<1){ // 图像数据为空
map.put("错误", "无图像数据");
return map;
}
if (imgFilePath.length()<1){//图像路径
map.put("错误", "请传入要保存图像的路径");
return map;
}
Base64 base64=new Base64();
byte[] b=base64.decodeBase64(imgStr.getBytes());
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
try {
Date date=new Date();
long time=date.getTime();
String imgPath=imgFilePath+time+".jpeg";
OutputStream out = new FileOutputStream(imgPath);
out.write(b);
out.flush();
out.close();
map.put("imgPath", imgPath);
} catch (IOException e) {
e.printStackTrace();
map.put("错误", "请重新请求");
return map;
}
map.put("成功", "图片路径在imgPath");
return map;
}
}