
Java将图片转化为二进制字符格式而不是二进制流,不转成bitmap数组格式的
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
import java.awt.image.BufferedImage;   
import java.io.ByteArrayInputStream;   
import java.io.ByteArrayOutputStream;   
import java.io.File;   
import java.io.IOException;   
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class TestImageBinary {
static BASE64Encoder encoder = new sun.misc.BASE64Encoder();   
static BASE64Decoder decoder = new sun.misc.BASE64Decoder();   
   
public static void main(String[] args) {   
    System.out.println(getImageBinary());   
       
    base64StringToImage(getImageBinary());   
}   
   
static String getImageBinary(){   
    File f = new File("f://123456.jpg");    //这里gif动态图不可以,虽然在后面也能输出gif格式,但是却不是动图
    BufferedImage bi;   
    try {   
        bi = ImageIO.read(f);   
        ByteArrayOutputStream baos = new ByteArrayOutputStream();   
        ImageIO.write(bi, "jpg", baos);   
        byte[] bytes = baos.toByteArray();   
           
        return encoder.encodeBuffer(bytes).trim();   
    } catch (IOException e) {   
        e.printStackTrace();   
    }   
    return null;   
}   
   
static void base64StringToImage(String base64String){   
    try {   
        byte[] bytes1 = decoder.decodeBuffer(base64String);   
           
        ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);   
        BufferedImage bi1 =ImageIO.read(bais);   
        File w2 = new File("f://meinv.bmp");//可以是jpg,png格式   
        ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动   
    } catch (IOException e) {   
        e.printStackTrace();   
    }   
}   
}