0

カメラの使用方法、画像のキャプチャ方法、画像ビューでの画像のプレビュー方法、画像を jpg で圧縮する方法、バイトをリモート サーバーにアップロードする方法の例を投稿できますか? 私が見つけることができた最も近いものは以下です。カメラと画像キャプチャはありますが、プレビューし、jpg を 640/480px および約 120kb のサイズに圧縮/サイズ変更して、リモート サーバーにバイトをアップロードする方法を知る必要があります。お世話になった皆様、ありがとうございました。 http://android-coding.blogspot.com/2010/12/intent-of-mediastoreactionimagecapture.html

4

2 に答える 2

1

あなたのコードを見ると、間違っていることに気付いたことがいくつかあります。

-[カメラ機能について]-

  1. 自分でファイルを作成しないでください。これは必要ありません。ContentResolver.Insert 関数を使用して、ここで行ったように画像を含むファイル URI を返し、外部メモリが存在するかどうかを確認する場合は isMounted も引き継ぎます。
  2. データがあるかどうかを確認してから、サムネイルがあるかどうかを確認しています。サムネイルがない場合は、完全な画像が表示されます。親指を返さないとフルバージョンの親指を作りたくない限り、それでは意味がありません?? フルバージョンまたは両方を取得したいだけで、これまたはあれではありませんか?
  3. 完全なイメージへの URI を取得するために文字列値変数を取得していますか? 最初のポイントのコードから取得した uri をプロパティとして保存するだけです (アクティビティ クラスで「myPhotoURI」としましょう。カメラのインテント結果を処理する OnActivityResult 関数では、その URI を呼び出して次のように使用します (はい、あなたは「正しく見ています。記憶された URI だけにデータ インテントを使用していません):

    Bitmap imageFromCam = MediaStore.Images.Media.GetBitmap(this.ContentResolver, Android.Net.Uri.Parse(myPhotoURI));

  4. ギャラリーから画像を取得するには、この質問の回答からSelectImageFromStorage() 関数を使用し、OnActivityResult チェックで選択した画像の URI を取得します。

    Android.Net.Uri selectedImageUri = data.ToURI();

それが私にとって魅力のように働いたものです。

-[Webサービスへのデータ送信]-

画像データをバイト配列として受信する WCF または Web サービスを使用しているとします。この質問に対する承認された回答は、イメージをバイト配列に変換する方法の良い例を示しています (とにかく、これは WCF Web サービスが必要とするものです)。

これらの方向性があなたを前進させると思います。

于 2012-05-30T06:23:13.160 に答える
0

これがこれまでの最も近い例です...これにより、追加の出力が使用されたときにNullデータが返されます。サムネイルではなく、画像/写真全体にアクセスしようとしています。

    private void saveFullImage() {
        Intent intent = new Intent(Android.Provider.MediaStore.ActionImageCapture);

        string file = System.IO.Path.Combine(Android.OS.Environment.DirectoryDcim.ToString(), "test.jpg");

        var outputFileUri = Android.Net.Uri.Parse(file);
        intent.PutExtra(Android.Provider.MediaStore.ExtraOutput, outputFileUri);
        StartActivityForResult(intent, TAKE_PICTURE);
    }

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        if (requestCode == TAKE_PICTURE)
        {
            Uri imageUri = null;
            // Check if the result includes a thumbnail Bitmap
            if (data != null)
            {
                if (data.HasExtra("data"))
                {
                    var thumbnail = data.GetParcelableArrayExtra("data");
                    // TODO Do something with the thumbnail
                }
            }
            else
            {
                var outputFileUri = data.GetParcelableArrayExtra("outputFileuri");
                // TODO Do something with the full image stored
                // in outputFileUri
            }
        }
    }
于 2011-05-12T22:36:39.217 に答える