使用Java在Base64中从URL编码图像

臭鼬

我想对Base64中的URL图像进行编码和保存。我发现了几个从本地文件而不是从URL进行编码的示例。有可能这样做吗?

我尝试过类似的方法,但未成功。有任何帮助吗?感谢您的回答。

    public static void main(String[] args)  {
    String imageUrl = "http://www.avajava.com/images/avajavalogo.jpg";
    String destinationFile = "image.jpg";

    try {           
        // Reading a Image file from file system
        URL url = new URL(imageUrl);
        InputStream is = url.openStream();

        FileInputStream imageInFile = new FileInputStream(is.toString());
        byte imageData[] = new byte[2048];
        imageInFile.read(imageData);

        // Converting Image byte array into Base64 String
        String imageDataString = encodeImage(imageData);
        System.out.println("imageDataString : " + imageDataString);




        System.out.println("Image Successfully Manipulated!");
    } catch (FileNotFoundException e) {
        System.out.println("Image not found" + e);
    } catch (IOException ioe) {
        System.out.println("Exception while reading the Image " + ioe);
    }

}

/**
 * Encodes the byte array into base64 string
 *
 * @param imageByteArray - byte array
 * @return String a {@link java.lang.String}
 */
public static String encodeImage(byte[] imageByteArray) {
    return Base64.encodeBase64URLSafeString(imageByteArray);
}
milanboruvka:

您不应该使用FileInputStream。

使用类似:

URL url = new URL(imageUrl);
BufferedInputStream bis = new BufferedInputStream(url.openConnection().getInputStream());

另外,您需要循环读取数据,直到读取图像的所有字节为止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章