图片转base/base转图片java

图片转base/base转图片在线版
http://tool.chinaz.com/tools/imgtobase/

工具类

import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Decoder;

import java.io.*;

/**
 * @author zhaotao
 * @version V1.0
 * @description
 */
public class BASE64DecodedMultipartFile implements MultipartFile {

    private final byte[] imgContent;
    private final String header;

    public BASE64DecodedMultipartFile(byte[] imgContent, String header) {
        this.imgContent = imgContent;
        this.header = header.split(";")[0];
    }

    @Override
    public String getName() {
        return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];
    }

    @Override
    public String getOriginalFilename() {
        return System.currentTimeMillis() + (int) Math.random() * 10000 + "." + header.split("/")[1];
    }

    @Override
    public String getContentType() {
        return header.split(":")[1];
    }

    @Override
    public boolean isEmpty() {
        return imgContent == null || imgContent.length == 0;
    }

    @Override
    public long getSize() {
        return imgContent.length;
    }

    @Override
    public byte[] getBytes() throws IOException {
        return imgContent;
    }

    @Override
    public InputStream getInputStream() throws IOException {
        return new ByteArrayInputStream(imgContent);
    }

    @Override
    public void transferTo(File dest) throws IOException, IllegalStateException {
        new FileOutputStream(dest).write(imgContent);
    }

    public static MultipartFile base64ToMultipart(String base64) {
        try {
            String baseStrs[] = base64.split(",");

            BASE64Decoder decoder = new BASE64Decoder();
            byte[] b = new byte[0];
            b = decoder.decodeBuffer(baseStrs[1]);

            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            return new BASE64DecodedMultipartFile(b, baseStrs[0]);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}

base64转图片

public static void main(String[] args) {

    String str="data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMK\n" +
            "ChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAeAFoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhM\n" +
            "UEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo\n" +
            "6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYW\n" +
            "VpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDvdHs7WawiMunRKVRAHeND5uUUlhjJxkkc4OQeMYJvf2bY/wDP\n" +
            "lbf9+l/wrzf4yyO3wh1CJWxGlpas6mFvmLTxbSsn3eNr5Xk8qflGN3O/D7wD8OtT1i11Dwz4i1G9u9PnS5WCSVEbMbK2TG0SsUyVGRxzjOaAPav7Nsf+fK2/79L/AIVHcaRp9xbywyWkISRSjGNdjAEY4ZcFT7ggjtU2nGA6fbGzm8+1MSmKXzTLv\n" +
            "TA2tvJJbIwdxJz1ya8v+Ol/fmXw/wCG7G+ntI/Ed0tpNIu0iOMMqsAMBju85c/MBiPGMM2QD0cafpD3pUWlg13FGCR5aF0Rzx2yAxjPsSntUkOk6dDEkUOn2kcSKFVFhUBQOAAMcCvINV021+GPxN8KHwyj2+l6632G7sBKzK7B1VZCzljkGZSAMfcI\n" +
            "z85r2ieFZ0COXADK/wAjshyrBhyCDjI5HQjIOQSKAKyaTpyNIyafaK0jbnIhUFjgDJ45OAB9AKjGh6Wq2yx2FvGlucxpEgRR8pUAqMAjB6HIyAcZAI8Y+G3iKw0Dx18SPthnlurjU2FtZ2sLTT3DK9yxCIoyeByThRkZIzXrHg3xfo3jDT2utDuvN8v\n" +
            "aJoXUrJCxGQGU/iMjKkg4JwaANb+zbH/nytv+/S/4Uf2bY/8APlbf9+l/wptmJY7OwSK3dE2qsiXM5aWJdh6t82987Qctzknccc/P/iGLUfhv8QtV0/QtOS5s/Eyo2nREIqQ3XmDy2G5NmYpCSE6AMhJyBQB79cWmmW1vLPc29lDBEpeSSRFVUUDJ\n" +
            "JJ4AA71wOpqqaldqihVWZwABgAbjXWeFPD//AAi3hkWFnJ9uvvnnluLhtjXdwxLM8jAE8nAydxCgfexzyurf8hW9/wCuz/8AoRoA6zUNUl0XwjDfwafdak8UcANtaIXldWZFYqoHJAJbHfHUdR5L4h+3+LviDoeq6RoGq+FodO3XWo6zf262bmMbQ2W\n" +
            "IIbCLgBiwO4ggKCa9SsfE1nBZW8LxXBaONUJCrjIGPWqqeKdGfX5m+y3ZvobWMeYwBCxu78KN3BJj+bAGdqZJ2jAB2FeX/GjSZ9S03RvEegPBdahoF95kcJkBSY+YqtGAOWk8yNF2ggn5lGWIFdh/wldj/wA8rn/vlf8AGo4PFVsqETrM77mIKRBR\n" +
            "t3HaMFzyBgE9yCcDOAAefvFq/wARviRod7caFqOjeH9Ab7Ssl/EYJ55TtYAKQQRujXgdFDEsCygewQRtGhV5nmJZm3OFBALEheABgA4HfAGSTknn5fE9m7wsv22MI25lVExINpG1s5OMkHjByo5xkGO/8T2k1pJDHBct5mEbEnkkISAxV1O4MFJIxjk\n" +
            "DleoAPH/hx4h8PeDPH/jx9Xi+xWv25re3uY7QtHCBLL+5ygJTcACFxgiI/wB0V0nwLN1cXnjnxNFp91/Z+q3hnslYKrz4eZiq5YDPzquSducjPBx2GneKdOu7fTtQshfpDKrTFJyzlklG/GPMwCG24J3BVDKoAPGhL4qti8JiWZUDZkDRBiy7Twp3\n" +
            "jac7Tk54BGOcgA6SvB/HXg/XPH9p4j1+8S+t1sspoWnvuUvGh/eu0Rj3hpAuVBw2cA/KFNesf8JXY/8APK5/75X/ABqO38S6fb28UMcd6UjUIpkO9iAMcszEsfckk96AK/w+1TV9U8I2t3qtrdRasWSO5gvozb7Cu1XZf3YyGAMgGCNzFdwA+XB1b/k\n" +
            "K3v8A12f/ANCNdF/wk9pa6f5VnBcyyRRbYlnkzvIHyh5CWbnjLHce/Jrmb6VZ724mQELJIzgHrgnNAH//2Q==";
    MultipartFile multipartFile=BASE64DecodedMultipartFile.base64ToMultipart(str);

    int n;
    File f = null;
    // 输出文件的新name 就是指上传后的文件名称
    System.out.println("getName:"+multipartFile.getName());
    // 输出源文件名称 就是指上传前的文件名称
    System.out.println("Oriname:"+multipartFile.getOriginalFilename());
    // 创建文件
    f = new File(multipartFile.getOriginalFilename());
    try (InputStream in  = multipartFile.getInputStream();
         OutputStream os = new FileOutputStream(f)){
        // 得到文件流。以文件流的方式输出到新文件
        // 可以使用byte[] ss = multipartFile.getBytes();代替while
        byte[] buffer = new byte[4096];
        while ((n = in.read(buffer,0,4096)) != -1){
            os.write(buffer,0,n);
        }
        // 读取文件第一行
        BufferedReader bufferedReader = new BufferedReader(new FileReader(f));
        System.out.println(bufferedReader.readLine());
        // 输出路径
        bufferedReader.close();
    }catch (IOException e){
        e.printStackTrace();
    }
    // 输出file的URL
    try {
        System.out.println(f.toURI().toURL().toString());
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    // 输出文件的绝对路径
    System.out.println(f.getAbsolutePath());
    // 操作完上的文件 需要删除在根目录下生成的文件
    File file = new File(f.toURI());
    if (file.delete()){
        System.out.println("删除成功");
    }else {
        System.out.println("删除失败");
    }
}

图片转base64

  public static String convertFileToBase64(String imgPath) {
        byte[] data = null;
        // 读取图片字节数组
        try {
            InputStream in = new FileInputStream(imgPath);
            System.out.println("文件大小(字节)="+in.available());
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 对字节数组进行Base64编码,得到Base64编码的字符串
        BASE64Encoder encoder = new BASE64Encoder();
        String base64Str = encoder.encode(data);
        return base64Str;
    }

    public static void main(String[] args) {

        System.out.println( convertFileToBase64("C:\\Users\\23704\\Desktop\\1.jpg"));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值