我的屏幕上有四个图像视图,从相机中捕获图像并显示在其中,现在我想将这些图像上传到服务器中。所以我使用下面的代码来获取这些代码的路径,但它是通过异常。是否有可能从图像视图将图像上传到服务器,从相机捕获(不将图像存储到存储器中)。
if (requestCode == 1&& resultCode == RESULT_OK)
{
Bitmap photo = (Bitmap) data.getExtras().get("data");
purchase_Img_1.setImageBitmap(photo);
Uri tempUri = getImageUri(getApplicationContext(), photo);
File finalFile = new File(getRealPathFromURI(tempUri));
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
public String getRealPathFromURI(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
return cursor.getString(idx);
}
答案 0 :(得分:1)
Getting path of captured image from imageviews
没有路径。没有路径。您获得了位图并将其放置在视图中。
Uri tempUri = getImageUri(getApplicationContext(), photo);
这里使用MediaStore存储了一个位图。你找回了一个uri。
您可以打开该uri的输入流,从中读取并上传字节。
但是使用MediaStore后,您将位图保存到文件中。如果您不希望更好地将位图压缩为ByteArrayOutputStream并上传生成的字节数组。
答案 1 :(得分:0)
摆脱大部分代码。使用Bitmap
将compress()
保存到文件中。现在您知道文件的位置,并可以将其用于服务器上载过程。