zoukankan      html  css  js  c++  java
  • JAVA 将图片转换为Base64编码

    https://www.cnblogs.com/ywlx/p/4544179.html

    这里使用的jar包是commons-codec-1.10.jar;

    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;

    import org.apache.commons.codec.binary.Base64;


    /**
    * 将图片转换为Base64<br>
    * 将base64编码字符串解码成img图片
    * @创建时间 2015-06-01 15:50
    *
    */
    public class Img2Base64Util {

    public static void main(String[] args) {
    String imgFile = "d:\3.jpg";//待处理的图片
    String imgbese=getImgStr(imgFile);
    System.out.println(imgbese.length());
    System.out.println(imgbese);
    String imgFilePath = "d:\332.jpg";//新生成的图片
    generateImage(imgbese,imgFilePath);
    }
    /**
    * 将图片转换成Base64编码
    * @param imgFile 待处理图片
    * @return
    */
    public static String getImgStr(String imgFile){
    //将图片文件转化为字节数组字符串,并对其进行Base64编码处理


    InputStream in = null;
    byte[] data = null;
    //读取图片字节数组
    try
    {
    in = new FileInputStream(imgFile);
    data = new byte[in.available()];
    in.read(data);
    in.close();
    }
    catch (IOException e)
    {
    e.printStackTrace();
    }
    return new String(Base64.encodeBase64(data));
    }

    /**
    * 对字节数组字符串进行Base64解码并生成图片
    * @param imgStr 图片数据
    * @param imgFilePath 保存图片全路径地址
    * @return
    */
    public static boolean generateImage(String imgStr,String imgFilePath){
    //
    if (imgStr == null) //图像数据为空
    return false;

    try
    {
    //Base64解码
    byte[] b = Base64.decodeBase64(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;
    }
    }
    }







    public static void main(String[] args){
    try {
    base64UpLoad("data:image/jpeg;base64,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");
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    //将前端所有的data:image/jpeg;base64,/9jxxxxxxxx解析
    public static void base64UpLoad(String base64Data) throws Exception{
    String dataPrix = "";
    String data = "";

    if(base64Data == null || "".equals(base64Data)){
    throw new Exception("上传失败,上传图片数据为空");
    }else{
    String [] d = base64Data.split("base64,");
    if(d != null && d.length == 2){
    dataPrix = d[0];
    data = d[1];
    }else{
    throw new Exception("上传失败,数据不合法");
    }
    }
    // FileDtl fileDtl= new FileDtl();
    String suffix = "";
    if("data:image/jpeg;".equalsIgnoreCase(dataPrix)){//data:image/jpeg;base64,base64编码的jpeg图片数据
    suffix = ".jpg";
    } else if("data:image/x-icon;".equalsIgnoreCase(dataPrix)){//data:image/x-icon;base64,base64编码的icon图片数据
    suffix = ".ico";
    } else if("data:image/gif;".equalsIgnoreCase(dataPrix)){//data:image/gif;base64,base64编码的gif图片数据
    suffix = ".gif";
    } else if("data:image/png;".equalsIgnoreCase(dataPrix)){//data:image/png;base64,base64编码的png图片数据
    suffix = ".png";
    }else{
    throw new Exception("上传图片格式不合法");
    }
    String tempFileName = DateUtil.timeStampMS() + suffix;
    try {
    byte[] bs = Base64.decodeBase64(data);
    //处理数据
    for (int i = 0; i < bs.length; ++i) {
    if (bs[i] < 0) {
    bs[i] += 256;
    }
    }
    OutputStream out = new FileOutputStream("d:\"+tempFileName);
    out.write(bs);
    out.flush();
    out.close();

    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    // fileDtl.setFileName(tempFileName);
    // // byte[] bs = Base64Utils.decodeFromString(data);
    // BASE64Decoder decoder = new BASE64Decoder();
    // byte[] bs = decoder.decodeBuffer(data);
    // //处理数据
    // for (int i = 0; i < bs.length; ++i) {
    // if (bs[i] < 0) {
    // bs[i] += 256;
    // }
    // }
    // int size=bs.length;
    // fileDtl.setFileSize((long)size) ;
    // InputStream is = new ByteArrayInputStream(bs);
    // fileDtl.setIs(is);
    // return fileDtl;
    }

  • 相关阅读:
    洛谷P2740 草地排水
    BZOJ 4326 运输计划
    BZOJ 1036 树的统计
    BZOJ 1003 物流运输
    BZOJ 1251 序列终结者
    HDU4864 Task(算竞进阶习题)
    洛谷P4281 紧急集合 / 聚会
    CH0802 占卜DIY
    node.js(二)各种模块
    node.js对象数据类型
  • 原文地址:https://www.cnblogs.com/wth21-1314/p/10022174.html
Copyright © 2011-2022 走看看