把图片生成Base64字符串

时间:2021-03-21 21:48:48
public class ImgeUtils {

    public static String img2String(BufferedImage img,String type){
        String imgStr  = null;
        
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        
        try {
            ImageIO.write(img, type, baos);
            
            byte[] imgByte = baos.toByteArray();
            
            imgStr = new BASE64Encoder().encode(imgByte);
        } catch (IOException ex) {
            Logger.getLogger(ImgeUtils.class.getName()).log(Level.SEVERE, null, ex);
        }finally{
            try {
                baos.close();
            } catch (IOException ex) {
                Logger.getLogger(ImgeUtils.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        
        return imgStr;
    }
}
 public static void main(String[] args) {
        String imgStr = null;
        
        try {
            BufferedImage img = Thumbnails.of(
                    ImageIO.read(new File("/home/y/my_screen/markers.png"))
                ).size(100, 100).asBufferedImage();
            imgStr = ImgeUtils.img2String(img, "png");
        } catch (IOException ex) {
            Logger.getLogger(PngBase64Test.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        System.out.println("imgStr:"+imgStr);
    }