How can I convert an image into a Base64 string?

前端 未结 14 1181
离开以前
离开以前 2020-11-22 06:52

What is the code to transform an image (maximum of 200 KB) into a Base64 String?

I need to know how to do it with Android, because I have to add the functionali

相关标签:
14条回答
  • 2020-11-22 07:17

    I make a static function. Its more efficient i think.

    public static String file2Base64(String filePath) {
            FileInputStream fis = null;
            String base64String = "";
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            try {
                fis = new FileInputStream(filePath);
                byte[] buffer = new byte[1024 * 100];
                int count = 0;
                while ((count = fis.read(buffer)) != -1) {
                    bos.write(buffer, 0, count);
                }
                fis.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            base64String = Base64.encodeToString(bos.toByteArray(), Base64.DEFAULT);
            return base64String;
    
        }
    

    Simple and easier!

    0 讨论(0)
  • 2020-11-22 07:24

    You can use the Base64 Android class:

    String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);
    

    You'll have to convert your image into a byte array though. Here's an example:

    Bitmap bm = BitmapFactory.decodeFile("/path/to/image.jpg");
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); // bm is the bitmap object
    byte[] b = baos.toByteArray();
    

    * Update *

    If you're using an older SDK library (because you want it to work on phones with older versions of the OS) you won't have the Base64 class packaged in (since it just came out in API level 8 AKA version 2.2).

    Check this article out for a workaround:

    How to base64 encode decode Android

    0 讨论(0)
提交回复
热议问题