使用内存流或字节数组共享图像

时间:2016-04-05 09:13:51

标签: java android

我有一些标准代码可以在我的Android应用中分享图片。图像存在于存储器上,我为图​​像提供了一个URI。一切正常。

但是,这需要WRITE_EXTERNAL_STORAGE权限。有没有一种方法可以在不需要此权限的情况下共享图像,例如,不将图像保存到存储器,而是指定内存流或字节数组?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码将图像文件转换为字节数组,我从对类似问题的回答中获取:How to convert image into byte array and byte array to base64 String in android?

String filepath = "/sdcard/temp.png";
File imagefile = new File(filepath);
FileInputStream fis = null;
try {
    fis = new FileInputStream(imagefile);
    } catch (FileNotFoundException e) {
    e.printStackTrace();
}

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

在Base64中编码的可选步骤

encImage = Base64.encodeToString(b, Base64.DEFAULT);