开发手册 欢迎您!
软件开发者资料库

Java 通过图片Url路径生成Base64字符串的工具类

本文主要介绍Java中, 通过图片Url路径生成Base64字符串的工具类。

package com.wonhero.utils.util;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.net.URL;public class ImageUtils {    public static String getBase64ByImgUrl(String url) {        String suffix = url.substring(url.lastIndexOf(".") + 1);        ByteArrayOutputStream baos = new ByteArrayOutputStream();        try {            URL urls = new URL(url);            Image image = Toolkit.getDefaultToolkit().getImage(urls);            BufferedImage biOut = toBufferedImage(image);            ImageIO.write(biOut, suffix, baos);            String base64Str = Base64Convert.byteToBase64(baos.toByteArray());            return base64Str;        } catch (Exception e) {            return "";        }finally {            try {                baos.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    public static BufferedImage toBufferedImage(Image image) {        if (image instanceof BufferedImage) {            return (BufferedImage) image;        }        // This code ensures that all the pixels in the image are loaded        image = new ImageIcon(image).getImage();        BufferedImage bimage = null;        GraphicsEnvironment ge = GraphicsEnvironment                .getLocalGraphicsEnvironment();        try {            int transparency = Transparency.OPAQUE;            GraphicsDevice gs = ge.getDefaultScreenDevice();            GraphicsConfiguration gc = gs.getDefaultConfiguration();            bimage = gc.createCompatibleImage(image.getWidth(null),                    image.getHeight(null), transparency);        } catch (HeadlessException e) {            // The system does not have a screen        }        if (bimage == null) {            // Create a buffered image using the default color model            int type = BufferedImage.TYPE_INT_RGB;            bimage = new BufferedImage(image.getWidth(null),                    image.getHeight(null), type);        }        // Copy image to buffered image        Graphics g = bimage.createGraphics();        // Paint the image onto the buffered image        g.drawImage(image, 0, 0, null);        g.dispose();        return bimage;    }}