0

画像をバイト配列の形式でサーバーにアップロードしたい.ここでは、ユーザーが写真を撮るボタンをクリックすると、表面ビューと「写真を撮る」ボタンを使用しています。

    TakePicture.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub
        camera.takePicture(null, null, callback);
    }
});

とpictureCallbackは次のとおりです。

       PictureCallback callback = new PictureCallback(){

 public void onPictureTaken(**byte[] data**, Camera camera) {
  // TODO Auto-generated method stub

     try {
            //async task for storing the photo
         Log.i("Picture Taken.", "Picture Taken.");

            new SavePhotoTask(CameraPreviewActivity.this, data).execute();
        } catch (final Exception e) {
            //some exceptionhandling
            Log.i("Save Photo exception",e.getMessage());
        }

}}; ここで、このバイト配列「データ」を使用しています

この画像をバイト[]の形式でWebサーバーに送信したい..

これはどうすればいいですか??

4

2 に答える 2

0

バイト配列をbase64に変換

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);

このリンクも参照してください

于 2012-05-08T11:41:44.007 に答える
0

1)カメラインテントを送る

public void onCameraClick(View view) {
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    imageFile = FileUtil.newFile();
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile));
    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}

2)画像の準備ができたらファイルパスを取得し、ファイルからバイトを読み取り、サーバーにバイトを送信します。

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK){
            if (resultCode == RESULT_OK) {
                final String path = imageFile.getAbsolutePath();
// get file from path and send bytes to server
            }
        }
    }
于 2012-05-08T11:42:56.133 に答える