画像をBase 64文字列に生成

3302 ワード

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);

    }