2012-10-01 86 views
4

有人可以告訴我將圖像轉換爲base64字符串的代碼。我寫下面的代碼沒有得到正確的結果。如何將圖像轉換爲base64字符串android?

String filepath = "/sdcard/Image/image1.jpg"; 
    File imagefile = new File(filepath); 
     FileInputStream fis = null; 
     try { 
      fis = new FileInputStream(imagefile); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     Bitmap bm = BitmapFactory.decodeStream(fis); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     bm.compress(Bitmap.CompressFormat.JPEG, 100 , baos);  
     byte[] b = baos.toByteArray(); 

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

結果即時得到不將其與3點結束正確格式...與3個點

字節數組即時得到兩端...

[-1, -40, -1, -32, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, -1, -37, 0, 67, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -37, 0, 67, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -64, 0, 17, 8, 1, 64, 0, -16, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1, -1, -60, 0, 31, 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -60, 0, -75, 16, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 125, 1, 2, 3, 0, 4, 17, 5, 18, 33, 49, 65, 6, 19, 81, 97, 7, 34, 113, 20, 50, -127, -111, -95, 8, 35, 66, -79, -63, 21, 82, -47, -16, 36, 51, 98, 114, -126, 9, 10, 22, 23, 24, 25, 26, 37, 38, 39, 40, 41, 42, 52, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, -125, -124, -123, -122, -121, -120, -119, -118, -110, -109, -108, -107, -106, -105, -104, -103, -102, -94, -93, -92, -91, -90, -89, -88, -87, -86, -78, -77, -76, -75, -74, -73, -72, -71, -70, -62, -61, -60, -59, -58, -57, -56, -55, -54, -46, -45, -44, -43, -42, -41, -40, -39, -38, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -1, -60, 0, 31, 1, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, -60, 0, -75, 17, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 119, 0, 1, 2, 3, 17, 4, 5, 33, 49, 6, 18, 65, 81, 7, 97, 113, 19, 34, 50, -127, 8, 20, 66, -111, -95, -79, -63, 9, 35, 51, 82, -16, 21, 98, 114, -47, 10, 22, 36, 52, -31, 37, -15, 23, 24, 25, 26, 38, 39, 40, 41, 42, 53, 54, 55, 56, 57, 58, 67, 68, 69, 70, 71, 72, 73, 74, 83, 84, 85, 86, 87, 88, 89, 90, 99, 100, 101, 102, 103, 104, 105, 106, 115, 116, 117, 118, 119, 120, 121, 122, -126, -125, -124, -123, -122, -121, -120, -119, -118, -110, -109, -108, -107, -106, -105, -104, -103, -102, -94, -93, -92, -91, -90, -89, -88, -87, -86, -78, -77, -76, -75, -74, -73, -72, -71, -70, -62, -61, -60, -59, -58, -57, -56, -55, -54, -46, -45, -44, -43, -42, -41, -40, -39, -38, -30, -29, -28, -27, -26, -25, -24, -23, -22, -14, -13, -12, -11, -10, -9, -8, -7, -6, -1, -38, 0, 12, 3, 1, 0, 2, 17, 3, 17, 0, 63, 0, -2, 55, -96, -76, 100, 41, 28, -111, -96, 46, -119, 50, 16, -79, -78, 60, 82, 2, -24, -24, -56, 28, 72, -82, -84, 14, -32, 91, 57, 57, 32, -115, -75, -83, 109, 102, -84, 91, 116, 104, 62, 98, 48, 85, 114, 112, 100, 3, -8, -77, -43, 65, 35, 29, 54, -110, 9, 14, 79, 23, -16, -9, -58, -87, -31, -23, -51, -114, -79, 4, 87, -102, 52, -78, 42, -77, 77, 2, 75, 62, -98, 36, 117, 13, 53, -69, -19, 50, -120, -14, -101, -27, -122, 51, -109, -110, -15, 41, 125, -55, 39, -40, -98, 23, -45, -4, 55, -30, 27, 8, -38, -34, 11, 107, -44, 107, -107, 72, -18, 34, 75, 89, 101, 116, 36, 75, 27, -106, 80, -53, 30, -27, 32, 49, 92, -122, 80, -39, -52, -65, 53, 124, 116, -16, 110, 28, -51, -22, -106, -51, 39, 103, -85, 87, -14, -8, 123, -11, 119, 109, -92, 121, -76, 49, -111, 106, -17, 118, -105, -90, -22, -18, -51, -89, -25, 109, -10, -46, -41, 103, -126, 91, -38, -94, -85, 110, -120, 12, 54, 7, -55, -114, -101, -3, -119, 3, 104, 28, -25, -44, 2, 48, -39, -47, -122, -51, 112, -37, 17, 71, 0, 16, 20, 1, -116, -65, 25, 62, -92, 100, -109, -58, 119, 100, -28, -28, -3, -109, 101, -32, 111, 14, 61, -66, 95, 65, -79, -109, -26, 84, 57, -75, -116, 56, -35, 51, -122, 98, 66, 70, 66, -87, -25, 110, 114, -87, -72, -86, 2, 49, 93, 61, -81, -61, 31, 8, 58, 21, 109, 2, -60, -107, -57, 43, 27, 12, -106, 103, 39, 44, 8, 99, -128, 120, 29, 66, -32, 12, -107, -7, -79, 88, 121, 61, -91, 123, 37, -41, -94, 106, -35, 63, -90, -41, 84, -17, -46, -79, 84, -19, -83, -42, -35, 63, -59, -25, -27, -75, -5, -85, -67, 89, -7, -17, -81, -8, 70, -49, 94, -77, 49, 58, 8, 110, -112, 31, -78, 93, 32, 27, -30, -109, 46, 118, -66, 6, 100, -115, -103, 70, -12, 39, 118, 55, 0, -63, -64, 39, -61, 111, 52, -21, -35, 30, -12, 89, 95, 90, 70, -109, 90, 72, -82, 85, -30, 30, 85, -60, 32, -66, 26, 55, 0, 52, -80, -54, -96, 16, -63, -125, 114, 87, 34, 84, 106, -3, -109, -75, -8, 57, -32, -126, -30, 71, -48, 109, -9, 22, 24, 6, -25, 80, 84, 57, 50, 19, -14, 37, -54, -115, -72, 24, 94, 2, -125, -114, 114, -96, -41, 61, -29, -113, -39, -97, -31, -1, 0, -116, 116, 59, -69, 59, 27, 67, -93, -21, 17, -62, 100, -46, -75, 40, -26, -71, -105, -20, 119, 96, 57, -37, 44, 18, -36, 58, -49, 103, 113, -64, -70, -124, -31, -54, -108, 120, -27, 73, 86, 22, -81, 71, 11, 57, -46, -117, -89, 55, 120, -69, 90, -41, -70, -42, 87, -66, -119, 90, -38, -37, 93, -35, -84, -73, -31, -59, 58, 53, -105, 52, 18, -25, -70, -43, -11, -43, 119, -12, -35, 121, 95, 85, -81, -29, -35, -18, -98, 86, 89, -54, 36, 41, 21, -68, 74, -32, -85, -57, 25, 49, -76, -125, 110, 16, -112, -46, 76, 60, -59, 14, -86, -90, 77, -120, -52, 81, -43, 36, -112, -25, 27, 72, -38, 41, -92, 18, 29, -31, -45, 108, 126, 81, 6, 72, -56, -108, -68, -103, 14, 66, -104, -10, -95, -37, -50, 67, -71, -36, 54, 18, 125, -109, -57, 30, 13, -15, 47, -125, 124, 67, 123, -31, -49, 24, 88, -83, -83, -12, 46, -78, 69, 40, -116, 125, -98, -14, -38, 77, -48, -61, -88, 88, 79, 18, -60, 39, -79, -106, 52, -52, 126, 90, -97, 46, 85, -110, -34, 72, -31, -71, 91, -104, -85, -128, -109, 79, -98, -56, -83, -62, 5, 56, -108, -7, 44, 85, 27, -26, -122, 70, -36, 93, 28, -78, -100, 48, 25, 87, -32, -126, 87, 44, -124, -77, 122, 42, 55, -115, -42, -82, -17, -81, 75, -7, -11, -74, -66, 123, 110, 121, -100, -42, -109, -117, -46, -38, 126, -114, -9, 122, 126, 127, 61, 78, 42, 61, -88, -50, 48, 50, -96, -20, -32, 16, -60, 49, -57, 94, -128, -125, -44, 100, -6, -100, 19, 90, -38, 124, -78, -38, -50, -109, -37, 22, 89, -61, -58, -54, -15, 41, 51, 44, -118, -25, 97, -117, -111, -110, 27, -26, 10, 78, 9, 37, 65, -36, 55, 30, -81, -5, 4, -21, 17, 92, -21, 49, 62, -97, 98, -86, -115, 53, -22, 8, -38, -34, 8, -89, 15, 34, -104, 45, -31, 70, -107, -53, -56, -116, -73, 9, 20, 106, 124, -46, -14, 45, -72, 103, -115, -31, 94, 102, 21, -114, 53, -99, -36, -54, -78, -57, -27, -76, 5, 2, -107, 47, -26, 48, 62, 97, 103, 13, 24, -40, 55, 35, 40, 98, 31, 106, -107, 1, -117, -44, 90, -21, -110, -41, -69, -73, -101, -69, 106, -33, -7, 43, -13, -13, -22, -9, -91, 86, 84, -99, -42, -85, 71, 111, -101, 77, -4, -41, 79, 61, 118, 76, -6, 83, -64, -2, 38, -121, 92, -119, 109, 47, -46, 40, 53, 63, 37, 89, 11, 5, 72, -75, 8, -47, -103, 90, 107, 115, -48, -56, -90, 51, -10, -120, 65, 37, 25, 89, -108, 21, -13, 21, 125, 122, -46, -34, 33, -100, -94, -87, -62, 14, 80, 99, -17, 74, 7, 108, -29, -100, 12, -14, 73, 61, -41, 39, -31, -51, 47, 81, -72, -73, -106, 48, 37, -100, 71, 4, -53, 50, 8, -27, 43, 44, 50, -110, 51, 37, -69, -100, -108, 114, 85, 11, 1, -14, -74, 62, 98, 88, 43, 15, -45, 127, -39, -105, 79, -8, 95, -15, 94, 59, 127, 11, -8, -53, 82, -41, 52, 47, 24, -55, 10, -49, -90, -51, 5, -10, -101, 5, -121, -120, -83, 84, 72, -57, -20, 11, 119, -89, -54, 63, -76, 97, 69, 111, -76, -39, 2, -19, 49, 13, 61, -85, 21, 55, 86, -15, -8, 88, -84, -79, -58, 115, -100, 91, -77, 122, -57, -86, -43, -66, -49, 116, -81, -9, 106, -37, -69, -6, 124, 6, 105, 79, -39, -72, -44, 87, -27, 105, 38, -76, 111, -43, 53, -39, 59, -83, -43, -45, -69, 91, -16, -55, -90, -58, -56, -89, -55, 66, 64, 93, -89, 106, -112, 126, -10, 0, 59, 112, 71, 10, 121, -25, 56, 57, -56, 10, 121, 127, 23, 124, 58, -80, -15, 85, -117, 43, 69, 21, -75, -12, 104, 90, -38, -19, 33, 92, -85, -110, -33, -70, -103, 84, 102, 72, 36, 35, 59, 9, -7, 10, -121, 83, -71, 73, -81, -43, 24, 127, 100, 79, 6, -49, 111, -74, -45, -60, 62, 35, -126, 77, -111, -76, 111, 51, 105, -110, -123, 37, 100, -36, -78, 68, -70, 117, -66, -16, 73, 12, 0, 117, 117, 1, -108, -106, 37, -98, -81, -89, -20, 113, -31, -13, 17, -14, -68, 75, -84, 76, -25, -27, -115, -28, -114, -59, 99, 12, 60, -44, 27, -31, 88, 67, 48, -32, 49, 38, 85, -34, 89, -41, 112, 35, 121, -32, -93, 71, 19, 66, -85, -87, 7, -42, 43, -15, 94, 111, 126, -34, -73, 76, -17, -87, -104, 96, -22, -46, -107, 41, -87, 114, -55, 89, -69, 59, -17, 117, 107, 54, -109, 77, 43, 125, -51, -37, -103, -53, -7, -16, -43, 124, 55, 125, -94, -34, -36, 105, -6, -115, -89, -109, 52, 7, 105, 44, -124, -84, -86, 90, 93, -78, -62, -37, 113, 36, 114, 42, -18, 12, 56, 25, 32, -31, -127, 90, -65, -31, -35, 86, -21, -61, -9, 73, 52, 39, -52, 70, 32, 50, -80, -54, 58, -125, -13, 71, 32, 99, -62, -28, 3, 25, 31, 50, -98, -8, -36, 91, -9, 23, -57, 63, -80, 47, -122, -4, 93, -91, -49, 108, 60, 85, -88, -39, 107, 16, 71, 112, -38, 109, -11, -58, -107, 103, 36, 81, 92, 108, -109, -55, 91, -119, 32, -103, 100, -106, -51, -91, 8, 46, 4, 100, -4, -123, -34, 21, 18, -18, -49, -29, -49, -60, -81, -123, -34, 45, -8, 83, -30, -99, 83, -63, -34, 50, -46, 31, 77, -43, 44, 37, 64, 80, -30, 75, 107, -69, 103, 51, 8, 117, 13, 58, -17, -124, -68, -80, -69, 68, 15, 5, -60, 120, 5, -119, -118, 84, 75, -120, -26, -116, 125, 69, 26, -85, 23, 67, -39, -44, 75, -98, -47, 82, -113, 71, 119, 56, -20, -45, -20, -92, -99, -19, -75, -35, -36, 91, -7, 106, -109, 88, 90, -41, -94, -17, 11, -90, -98, -87, -39, 59, -23, -82, -6, 95, -43, 110, -9, 61, -105, -61, -102, -123, -122, -75, 101, 29, -35, -80, 67, -57, -17, -94, 1, 75, -60, -37, -100, 20, 113, -116, -16, -33, 50, -100, 96, -85, 100, -74, 0, -49, 101, 22, -97, 1, 37, -74, 38, 24, 115, -75, 87, 29, 91, -87, 11, -23, -44, 114, 121, 25, -28, 12, -4, -103, -31, -97, 17, -35, -8, 126, -11, 39, -123, -63, -119, 54, -58, -47, -53, -111, 28, -111, 101, -127, -118, 80, -93, -25, 80, 71, -53, 38, 12, -120, 74, -112, -27, 70, 43, -11, 7, -31, 7, -63, -115, 59, -29, 55, -125, -94, -15, 63, -124, 124, 111, -90, 77, -121, -14, 117, 93, 26, 93, 54, 84, -43, 52, 107, -35, -68, 90, 94, -94, -33, -70, -122, 108, 9, 109, -26, 5, -83, -18, -96, 127, 58, 9, 100, 10, -32, 124, -50, 55, 45, -85, 66, -92, -1... 

和BASE64串即時得到也結束於3個不正確的點

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... 

但是當我從我的drawable資源轉換圖像我m到處合適的base64字符串

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.icon); 
    ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
    bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream); 
    byte[] byteArray = stream.toByteArray(); 
    String testa = Base64.encodeBytes(byteArray); 

可以在任何哥們告訴我在上面的代碼由於做事先

回答

1

我敢說終點上的點只是佔位符,用於顯示值太長的值以顯示/打印輸出爲字節數組。你的base64編碼沒有問題,但爲什麼你要記錄JPEG?只需讀取字節數組中的文件(不是一個大塊,而是分塊,我會選擇緩衝區大小爲4的倍數),將其快速轉換並寫入輸出流。 PS:在安裝文件時讀取文件是不好的做法,因爲內存非常有限 - 你的性能會不好。

下面是示例代碼,但我懶得編譯或調試它:

while((size = inputStream.read(inputBuffer)) != -1) { 
    // arraycopy only if necessary 
    outBuf = Base64.encodeBytes(System.arrayCopy(inputBuffer...)) 
    outputStream.write(outBuf); 
} 

這不是最優化的解決方案雖然,因爲arraycopy可能將數據複製(但必須要上完成最後一個大塊)

+0

即時讀取文件字節數組,但得到相同的結果 –

+0

FileInputStream mFileInputStream; \t \t嘗試{ \t \t \t String encoded = null; \t \t \t mFileInputStream = new FileInputStream(imagefile); \t \t \t ByteArrayOutputStream bos = new ByteArrayOutputStream(); \t \t byte [] b = new byte [1024]; \t \t int bytesRead = 0; \t \t嘗試{ \t \t \t \t \t而(!(bytesRead = mFileInputStream.read(B))= -1){ \t \t \t \t \t bos.write(B,0,bytesRead); \t \t \t \t \t encoded = encoded + Base64.encodeBytes(b); \t \t \t \t \t} \t \t字節[] BA = bos.toByteArray(); \t \t}趕上(FileNotFoundException異常E){ \t \t \t // TODO自動生成的catch程序塊 \t \t \t e.printStackTrace(); \t \t} –

+1

您正在使用一種應該避免的技術。不要使用「+」連接字符串,特別是在循環和android中,或者您的質量工程師/性能測試人員/ PM會在現場制服您。當您讀取流中的字節塊時,將其傳遞(或子陣列)到編碼器,並將結果字節數組寫入輸出stram中。這將阻止大量內存分配並大大提高性能。 –

0
// uris[] - the file uris array 
    if (uris != null && !uris.isEmpty()) { 
      for (int i = 0; i < uris.size(); i++) { 
       // current image's uri 

       // Uri u = Uri.fromFile(filepath) - YOUR situation 
       Uri u = uris.get(i); 
       if (u != null) { 
        System.gc(); 
        InputStream is = null; 
        byte[] data = null; 
        try { 
         is = mContentResolver.openInputStream(u); 
         // converting to byteArray/my Procedure 
         data = getFileBytes(is); 
        } catch (Exception ex) { 
         ex.printStackTrace(); 
        } 
        u = null; 

        // converting bytes to Base64 
        String data_string = 
          Base64.encodeToString(data, Base64.URL_SAFE); 

        // my pairs for transfer, may not use 
        if(! data_string.trim().equals("")){ 
         nameValuePairs.add(
           new BasicNameValuePair(
             "data[file_" + i + "]", 
             data_string 
           ) 
         ); 
        } 
        data_string = null; 
       } 
      } 
     } 

     /* convert InputStream to Byte array procedure */ 
     public byte[] getFileBytes(InputStream ios) throws IOException { 
      ByteArrayOutputStream ous = null; 
      try { 
       byte[] buffer = new byte[4096]; 
       ous = new ByteArrayOutputStream(); 
       int read = 0; 

       while ((read = ios.read(buffer)) != -1) 
        ous.write(buffer, 0, read); 
      } finally { 
       try { 
        if (ous != null) 
        ous.close(); 
       } catch (IOException e) { 
       e.printStackTrace(); 
      } 
      try { 
       if (ios != null) 
        ios.close(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 
     return ous.toByteArray(); 
    } 

什麼IM還要檢查你在哪裏看到你的base64。如果調試 - 它會被削減!

好的。嘗試我的代碼將圖像解碼爲您想要的MPx。這裏是100萬像素:

使用:

minimizeBitmap(filePath, 1000000, true) 

我的代碼:

public Bitmap minimizeBitmap(String aPath, int aMps, boolean aSaveOrNot) throws FileNotFoundException { 
    Uri aUri = null; 
    { 
     File f = new File(aPath); 
     aUri = Uri.fromFile(f); 
     f = null; 
     System.gc(); 
    } 

    InputStream in = mContentResolver.openInputStream(aUri); 
    try { 
     final int IMAGE_MAX_SIZE = aMps; 

     // Decode image size 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     BitmapFactory.decodeStream(in, null, o); 
     in.close(); 

     int scale = 1; 
     while ((o.outWidth * o.outHeight) * (1/Math.pow(scale, 2)) > IMAGE_MAX_SIZE) { 
      scale++; 
     } 

     Bitmap b = null; 
     in = mContentResolver.openInputStream(aUri); 

     aUri = null; 
     if (scale > 1) { 
      scale--; 

      o = new BitmapFactory.Options(); 
      o.inSampleSize = scale; 
      b = BitmapFactory.decodeStream(in, null, o); 

      int height = b.getHeight(); 
      int width = b.getWidth(); 

      double y = Math.sqrt(IMAGE_MAX_SIZE 
        /(((double) width)/height)); 
      double x = (y/height) * width; 

      Bitmap scaledBitmap = Bitmap.createScaledBitmap(b, (int) x, (int) y, true); 
      b.recycle(); 
      b = scaledBitmap; 

      if (aSaveOrNot) { 
       FileOutputStream out = new FileOutputStream(_fileName); 
       b.compress(Bitmap.CompressFormat.JPEG, 85, out); 
       out.close(); 
      } 

      System.gc(); 
      return b; 
     } else { 
      b = BitmapFactory.decodeStream(in); 
     } 
     in.close(); 
// 
//   Log.i("junr", "out getBitmap"); 
//   Log.i("junr", String.valueOf(Environment.getExternalStorageDirectory())); 
     if (aSaveOrNot) { 
      FileOutputStream out = new FileOutputStream(_fileName); 
      b.compress(Bitmap.CompressFormat.JPEG, 85, out); 
      out.close(); 
     } 
     return b; 
    } catch (IOException e) { 
     Log.e("junr", e.getMessage(),e); 
     return null; 
    } 

} 
+0

即時得到相同的結果與3個點結束這是與圖像大小有關,因爲我的圖像是比較大的可用的可繪製圖像在android drawable資源它只是4 kb和我的圖像是600 kb –

+0

是嗎?使用大圖像很重要?我可以讓它變小如果你想 – JunR

+0

不,它不是重要的使用大圖 –

2

試試這個。

File imageFile = new File("/sdcard/gallery_photo_4.jpg"); 
Bitmap bitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath()); 
ByteArrayOutputStream stream = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream); 
byte[] image = stream.toByteArray(); 
String img_str = Base64.encodeToString(image, 0); 
+0

即時得到相同的結果與3個點結束這是與圖像大小相關,因爲我的圖像是大的compair到可用的可繪製圖像在android drawable資源它只是4 kb和我的圖像是600 kb –

+1

這是一個很好的答案圖片。但是,對於更大的圖像,這可能會導致OutOfMemory異常,因爲您將整個byte []放入內存中。修復的方法是使用流來即時編碼Base64。 – Tiago

相關問題