2013-02-12 27 views
1

在将JPEG转换为base64方面有很好的资源。如何在不解码位图的情况下将JPEG/PNG编码为Base64,使用更少的内存

我在这样做而不解码到bimap的,避免任何存储器通货膨胀特别感兴趣。我也明白,任何文件可以通过将其转换成字节数组首先被编码成Base64编码。

因此,如果我们可以直接创建JPEG/PNG文件的字节数组远远小于解码JPEG位图的字节数组,我们可以将其转换为使用较少的内存占用的base64。

最接近的答案,我所遇到的就是这个https://stackoverflow.com/a/10160856/499752

+0

http://developer.android.com/reference/android/util/Base64OutputStream.html – Selvin 2013-02-12 21:33:29

回答

0
public void getGalleryDetails(String path) throws FileNotFoundException { 


    InputStream inputStream = new FileInputStream(path); 
    byte[] bytes; 
    byte[] buffer = new byte[8192]; 
    int bytesRead; 
    ByteArrayOutputStream output = new ByteArrayOutputStream(); 
    try{ 
     while((bytesRead = inputStream.read(buffer)) != -1){ 
      output.write(buffer, 0, bytesRead); 
     } 
    }catch(IOException e){ 
     e.printStackTrace(); 
    } 

    bytes = output.toByteArray(); 

    encodedImage = Base64.encodeToString(bytes, Base64.DEFAULT); 
    Log.i("ENCODED", encodedImage); 
} 

实际上,你可以使用这个......在这里你可以提供文件的路径转换为Base64编码。对不起后期的帖子...只是说这个帖子。

相关问题