2016-08-30 8 views
-3

あらかじめご了承いただきありがとうございます。Androidの場合、画像ファイルを保存せずに画像を取得する方法

私は次のcontidionでコーディングしています。私のアプリで

a. use internal camera app(I use Intent and other app to take pickture).
b. get image without saving into file. は、ユーザーがクレジットカードのpicktureを取り、サーバに送信します。クレジットカードの画像ファイルは不要で、画像をファイルに保存することは安全ではありません。

可能ですか?

それ以外のことはありますか?

a。 jpgファイルを開き、すべてのピクセルを黒色に編集する。
b。使用https://github.com/Morxander/ZeroFill

ウィッチ方法は適切ですか?

+0

これを一時ファイルに保存してから、サーバーへの送信が終了したら削除することができます。 –

+0

@SohailZahidご協力いただきありがとうございます!どのようにして一時ファイルに保存できますか? –

+0

@Sohail Zahidご協力いただきありがとうございます!どのようにして一時ファイルに保存できますか? –

答えて

1

短い回答はNOです。
デフォルトのカメラアプリから写真を取得することはできません。
カメラAPIを使用して、アプリ内で写真を撮ることができます。サードパーティ製のデフォルトのシステムフォトアプリではできません。

+0

ありがとうございます!私は、カメラAPIまたはワイプ画像ファイルを使用する必要があることを知っています。 –

1

ここを見てフルSource.

要求AndroidManifest.xmlにこの権限を:あなたのActivityオン

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

、これを定義することによって開始:

static final int REQUEST_IMAGE_CAPTURE = 1; 
private Bitmap mImageBitmap; 
private String mCurrentPhotoPath; 
private ImageView mImageView; 

次にonClickでこのIntentを発射:

そして、その結果を受け取る

private File createImageFile() throws IOException { 
    // Create an image file name 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String imageFileName = "JPEG_" + timeStamp + "_"; 
    File storageDir = Environment.getExternalStoragePublicDirectory(
      Environment.DIRECTORY_PICTURES); 
    File image = File.createTempFile(
      imageFileName, // prefix 
      ".jpg",   // suffix 
      storageDir  // directory 
    ); 

    // Save a file: path for use with ACTION_VIEW intents 
    mCurrentPhotoPath = "file:" + image.getAbsolutePath(); 
    return image; 
} 

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
if (cameraIntent.resolveActivity(getPackageManager()) != null) { 
    // Create the File where the photo should go 
    File photoFile = null; 
    try { 
     photoFile = createImageFile(); 
    } catch (IOException ex) { 
     // Error occurred while creating the File 
     Log.i(TAG, "IOException"); 
    } 
    // Continue only if the File was successfully created 
    if (photoFile != null) { 
     cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); 
     startActivityForResult(cameraIntent, REQUEST_IMAGE_CAPTURE); 
    } 
} 

は、以下のサポート方法を追加

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     try { 
      mImageBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(mCurrentPhotoPath)); 
      mImageView.setImageBitmap(mImageBitmap); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

何それが仕事作っことdeveloper.android.comからコードと違って、MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(mCurrentPhotoPath))です。元のコードは私にFileNotFoundExceptionを与えました。

+0

ありがとうございます。わかった!!。 –

関連する問題