我目前正致力于将图像作为Base64传递给休息服务。但我无法读取该文件。这是我的代码:
if (requestCode == iPictureCode && resultCode == RESULT_OK) {
String picturePath = data.getStringExtra(Intents.EXTRA_PICTURE_FILE_PATH);
String image = processPictureWhenReady(picturePath);
}
`private String processPictureWhenReady(final String picturePath){ final FileFile = new File(picturePath);
if (pictureFile.exists()) {
// The picture is ready; process it.
Bitmap bitmap = BitmapFactory.decodeFile(pictureFile.getAbsolutePath());
bitmap = CameraUtils.resizeImageToHalf(bitmap);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, stream);
String base64Image = Base64.encodeToString(stream.toByteArray(), Base64.DEFAULT);
return base64Image;
}
}`
它永远不会进入'pictureFile.exists()'
的if块可能是什么问题?
答案 0 :(得分:2)
您似乎已根据example in the developer docs修改了代码,但删除了else
子句,其中FileObserver
用于检测图像何时实际可用。您也需要该部分,因为当活动返回时,完整尺寸的图像可能不会立即就绪。