我有一些标准代码可以在我的Android应用中分享图片。图像存在于存储器上,我为图像提供了一个URI。一切正常。
但是,这需要WRITE_EXTERNAL_STORAGE权限。有没有一种方法可以在不需要此权限的情况下共享图像,例如,不将图像保存到存储器,而是指定内存流或字节数组?
谢谢!
答案 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);