2017-11-20 13 views
0

私は画面に4つの画像ビューを持ち、カメラから画像をキャプチャして表示しています。だから私はそれらのパスを取得するために、以下のコードを使用しているが、それは例外を通してです。画像をメモリに保存せずに、カメラからキャプチャした画像ビューからサーバに画像をアップロードすることは可能ですか?イメージビューからキャプチャされた画像のパスを取得してサーバにアップロード

  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); 
} 
+1

[カメラの意図を使ってアンドロイドで撮影した画像のパスを取得する](https://stackoverflow.com/questions/20327213/getting-path-of-captured-image-in-android-using-camera-intent ) – Prem

+0

例外はスローされますか? – Vij

答えて

1
Getting path of captured image from imageviews 

パスがありません。パスはありません。あなたはビットマップを取得し、それらをビューに配置します。

ここでは、MediaStoreを使用してビットマップを保存しました。あなたはウリを取り戻した。

そのURIの入力ストリームを開き、そこから読み取ってバイトをアップロードできます。

しかし、MediaStoreを使用して、ビットマップをファイルに保存しました。それを望まない場合は、ビットマップをByteArrayOutputStreamに圧縮し、結果のバイト配列をアップロードしてください。

0

このコードのほとんどを取り除きます。 compress()を使用してBitmapをファイルに保存します。これで、ファイルがどこにあるのかを知ることができ、サーバーのアップロードプロセスにそのファイルを使用できます。

関連する問題