当前位置: 首页 > 面试题库 >

如何在Java中将Image转换为base64字符串?

逑翰翮
2023-03-14
问题内容

可能是重复的,但我面临将图像转换成Base64用于发送的问题Http Post。我已经尝试过此代码,但是它给了我错误的编码字符串。

 public static void main(String[] args) {

           File f =  new File("C:/Users/SETU BASAK/Desktop/a.jpg");
             String encodstring = encodeFileToBase64Binary(f);
             System.out.println(encodstring);
       }

       private static String encodeFileToBase64Binary(File file){
            String encodedfile = null;
            try {
                FileInputStream fileInputStreamReader = new FileInputStream(file);
                byte[] bytes = new byte[(int)file.length()];
                fileInputStreamReader.read(bytes);
                encodedfile = Base64.encodeBase64(bytes).toString();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return encodedfile;
        }

输出: [B @ 677327b6

但我将同一张图像转换Base64为许多在线编码器,它们都给出了正确的大Base64字符串。

编辑: 如何重复?我的重复的链接没有给我解决方案转换字符串我想要的。

我在这里想念什么?


问题答案:

问题是您要返回toString()的调用将Base64.encodeBase64(bytes)返回一个字节数组。因此,最后得到的是字节数组的默认字符串表示形式,它与您获得的输出相对应。

相反,您应该执行以下操作:

encodedfile = new String(Base64.encodeBase64(bytes), "UTF-8");


 类似资料:
  • 问题内容: 我有一个图像通过JSON字符串发送给我。我想将该字符串转换为我的Android应用程序中的图像,然后显示该图像。 JSON字符串如下所示: 注意:我用…截断了字符串。 我有一个函数(我认为)可以将字符串转换为图像。我这样做对吗? 然后我尝试像这样在我的android活动上显示它 但是,当我这样做时,什么也没有显示。我在logcat中没有任何错误。我究竟做错了什么? 谢谢 问题答案: 我

  • 注意:我目前正在处理应用程序的api部分,我没有访问前端的东西。 因此前端将发送给我一个字符串,我需要将其转换为,因为在s3中上传文件的方法只接受,所以我需要将字符串转换为,而且现在重构整个上传方法太复杂了。 有办法做到这一点吗? 谢谢!

  • 它可能是一个重复的,但我面临一些问题,将图像转换为以发送。我试过这段代码,但它给了我错误的编码字符串。 输出:[b@677327b6 但是我在许多在线编码器中将这个相同的图像转换为并且它们都给出了正确的Base64大字符串。 编辑:怎么是复制品??这个链接是我的重复,没有给出我想要的字符串转换的解决方案。 我错过了什么??

  • 问题内容: 我一直在尝试使用 GZIPOutputStream 等,但在理解它们方面没有成功。我要做的就是将字符串- “字符串” 转换为GZIP Base64格式。我怎样才能做到这一点? 编辑: 通过GZIP Base64格式,我的意思是字符串首先使用GZIP压缩,然后转换为Base64 问题答案: 使用Apache Commons Codec 。 这是一个示例类: 哪个输出: 在Linux下,您

  • 问题内容: 我将图像转换为 base64 字符串,并将其从android设备发送到服务器。现在,我需要将该字符串改回图像并将其保存在数据库中。 有什么帮助吗? 问题答案: 尝试这个:

  • 问题内容: 需要: 我需要使用opencv 进行格式化,需要将图像从Java发送到C ++(opencv代码)。 我要做的步骤: 情况1: : 使用以下链接在c (opencv)中将mat编码为stringstream并在c (opencv)中将stringstream解码为mat,以便将base64编码从OpenCV cv :: Mat转换为std ::ifstream- 效果很好。 但是当我使