/**
* <保存图片文件>
*
* @param imgPath 图片存储路径
* @param imgName 图片名称
* @param fileBase64 图片base64
* @throws
*/
public void saveImg(String imgPath, String imgName, String fileBase64)
{
//对字节数组字符串进行Base64解码并生成图片
if (null == fileBase64)
{
//图像数据为空
LOGGER.error("img is empty.");
return;
}
OutputStream out = null;
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(fileBase64);
for (int i = 0; i < b.length; ++i)
{
if (b[i] < 0)
{
//调整异常数据
b[i] += 256;
}
}
//生成jpeg图片
out = new FileOutputStream(imgPath + imgName);
out.write(b);
out.flush();
out.close();
}
catch (Exception e)
{
LOGGER.error("save img catch exception. cause: ", e);
return;
}
finally
{
LOGGER.info("[finally] save img.");
if (null != out)
{
try
{
out.close();
out = null;
}
catch (IOException e)
{
LOGGER.error("close fileOutPutStream fail. cause:", e);
}
}
}
}
/**
* <根据图片指定路径获取图片的base64 string>
*
* @param imgUrl 图片路径
* @return 结果
* @throws
*/
public String getImgStr(String imgUrl)
{
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
//读取图片字节数组
try
{
in = new FileInputStream(imgUrl);
data = new byte[in.available()];
in.read(data);
in.close();
//对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);//返回Base64编码过的字节数组字符串
}
catch (IOException e)
{
LOGGER.error("read img catch exception. cause: ", e);
return "";
}
finally
{
if (null != in)
{
try
{
in.close();
in = null;
}
catch (IOException e)
{
LOGGER.error("close inputStream error. cause: ", e);
return "";
}
}
}
}