Java 将网络图片转成Base64码,

// 将网络图片转成Base64码, 此方法可以解决解码后图片显示不完整的问题
public static String imgBase64(String imgURL) {
    ByteArrayOutputStream outPut = new ByteArrayOutputStream();
    byte[] data = new byte[1024];
    try {
        // 创建URL
        URL url = new URL(imgURL);
        // 创建链接
        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(10 * 1000);

        if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
            return "fail";//连接失败/链接失效/图片不存在
        }
        InputStream inStream = conn.getInputStream();
        int len = -1;
        while ((len = inStream.read(data)) != -1) {
            outPut.write(data, 0, len);
        }
        inStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // 对字节数组Base64编码
    BASE64Encoder encoder = new BASE64Encoder();
    return encoder.encode(outPut.toByteArray());
}
//获取网络上的图片,转换为InputStream
public static InputStream getImageStream(String url) {
    System.out.println("url======= " + url);
    try {
        HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
        connection.setReadTimeout(5000);
        connection.setConnectTimeout(5000);
        connection.setRequestMethod("GET");
        if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
            InputStream inputStream = connection.getInputStream();
            return inputStream;
        }
    } catch (IOException e) {
        System.out.println("获取网络图片出现异常,图片路径为:" + url);
        e.printStackTrace();
    }
    return null;
}

 

 

//将网络地址对应的图片转换为base64
public static String imageChangeBase64(String imagePath){
    ByteArrayOutputStream outPut = new ByteArrayOutputStream();
    byte[] data = new byte[1024];
    try {
        // 创建URL
        URL url = new URL(imagePath);
        // 创建链接
        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(10 * 1000);

        if(conn.getResponseCode() != sun.net.www.protocol.http.HttpURLConnection.HTTP_OK) {
            return "fail";//连接失败/链接失效/图片不存在
        }
        InputStream inStream = conn.getInputStream();
        int len = -1;
        while ((len = inStream.read(data)) != -1) {
            outPut.write(data, 0, len);
        }
        inStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // 对字节数组Base64编码
    BASE64Encoder encoder = new BASE64Encoder();
    return encoder.encode(outPut.toByteArray());

}

 

/**
 * @Description: 图片转化成base64字符串
 * @param: path
 * @Return:
 */
public static String GetImageStr(String path) {
    //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
    //待处理的图片
    String imgFile = path;
    InputStream in = null;
    byte[] data = null;
    //读取图片字节数组
    try {
        in = new FileInputStream(imgFile);
        data = new byte[in.available()];
        in.read(data);
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    //对字节数组Base64编码
    BASE64Encoder encoder = new BASE64Encoder();
    //返回Base64编码过的字节数组字符串
    return encoder.encode(data);
    // base64编码后进行urlencode
    // java.net.URLEncoder.encode(string, "GBK")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值