gpt4 book ai didi

java - Android 获取空图像数据

转载 作者:行者123 更新时间:2023-12-02 07:27:57 26 4
gpt4 key购买 nike

我正在尝试从相机获取图像。效果很好。我可以拍照并将其显示在 ImageView 上。实际上,我想在拍摄后将这张照片发送到我的服务器。为此,我尝试在 onActivityResult 中提取图像。但是,当我检查 Intent 数据时,它总是返回 null。尽管如此,应用程序运行良好并显示图像。为什么我的 Intent 数据为空?你能帮我一下吗?

代码如下:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case ACTION_TAKE_PHOTO_B: {
if (resultCode == RESULT_OK) {
Log.e("TAG","data: "+data);
display_Photo();


//Process the image to send but, data is null
}
break;
}

}
}

日志猫:

数据:空

最佳答案

在您使用的代码中,有两个按钮 onclick 处理程序调用:dispatchTakePictureIntent(int actionCode)

一个按钮使用枚举 ACTION_TAKE_PHOTO_B 调用它,而另一个按钮则使用枚举 ACTION_TAKE_PHOTO_S

如果您传入 ACTION_TAKE_PHOTO_B,则返回 Intent 中 data 的预期结果为 null

原因是在 dispatchTakePictureIntent 调用 Intent MediaStore.ACTION_IMAGE_CAPTURE 之前,它根据传入的 actionCode 设置了一个额外的 Intent 参数:

takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));

根据documentation for ACTION_IMAGE_CAPTURE :

The caller may pass an extra EXTRA_OUTPUT to control where this image will be written. If the EXTRA_OUTPUT is not present, then a small sized image is returned as a Bitmap object in the extra field.

因此,由于设置了 EXTRA_OUTPUT 参数,因此您的图像将被写入磁盘而不是作为 Intent 中的数据返回。要获取文件位置,您可以检查在启动 Intent 之前写入的 mCurrentPhotoPath

关于java - Android 获取空图像数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13299232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com