package com.htdd.system.modules.member.util;
import org.apache.batik.transcoder.Transcoder;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.PNGTranscoder;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.*;
public class Base64Util {
public static String GetImageStr(File file) {
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
// String imgFile = "F:\\00\\method-draw-image.svg";//待处理的图片
// File file1 = new File(imgFile);
InputStream in = null;
byte[] data = null;
//读取图片字节数组
try
{
in = new FileInputStream(file);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
//对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);//返回Base64编码过的字节数组字符串
}
//base64字符串转化成图片
public static boolean GenerateImage(String imgStr,String imgFilePath)
{ //对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) //图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
//生成jpeg图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
/*
svg转png
*/
public static void convertSvg2Png(File svg, File png) throws IOException
{
InputStream in = new FileInputStream(svg);
OutputStream out = new FileOutputStream(png);
out = new BufferedOutputStream(out);
Transcoder transcoder = new PNGTranscoder();
try {
TranscoderInput input = new TranscoderInput(in);
try {
TranscoderOutput output = new TranscoderOutput(out);
transcoder.transcode(input, output);
} catch (TranscoderException e) {
e.printStackTrace();
} finally {
out.close();
}
} finally {
in.close();
}
}
public static void main(String[] args) {
String s = GetImageStr(new File("C:\\Users\\hduser\\Pictures\\Saved Pictures\\445566.jpg"));
System.out.println(s);
// File svg = new File("F:\\00\\method-draw-image.svg");
// File png = new File("F:\\00\\method-draw-image.png");
// try {
// convertSvg2Png(svg,png);
// }catch (Exception e){
// e.printStackTrace();
// }
boolean b = GenerateImage(s, "C:\\Users\\hduser\\Pictures\\Saved Pictures\\method-draw-image.jpg");
System.out.println(b);
}
}
Base64Util
最新推荐文章于 2025-03-09 15:40:32 发布