カメラの使用方法、画像のキャプチャ方法、画像ビューでの画像のプレビュー方法、画像を jpg で圧縮する方法、バイトをリモート サーバーにアップロードする方法の例を投稿できますか? 私が見つけることができた最も近いものは以下です。カメラと画像キャプチャはありますが、プレビューし、jpg を 640/480px および約 120kb のサイズに圧縮/サイズ変更して、リモート サーバーにバイトをアップロードする方法を知る必要があります。お世話になった皆様、ありがとうございました。 http://android-coding.blogspot.com/2010/12/intent-of-mediastoreactionimagecapture.html
2 に答える
あなたのコードを見ると、間違っていることに気付いたことがいくつかあります。
-[カメラ機能について]-
- 自分でファイルを作成しないでください。これは必要ありません。ContentResolver.Insert 関数を使用して、ここで行ったように画像を含むファイル URI を返し、外部メモリが存在するかどうかを確認する場合は isMounted も引き継ぎます。
- データがあるかどうかを確認してから、サムネイルがあるかどうかを確認しています。サムネイルがない場合は、完全な画像が表示されます。親指を返さないとフルバージョンの親指を作りたくない限り、それでは意味がありません?? フルバージョンまたは両方を取得したいだけで、これまたはあれではありませんか?
完全なイメージへの URI を取得するために文字列値変数を取得していますか? 最初のポイントのコードから取得した uri をプロパティとして保存するだけです (アクティビティ クラスで「myPhotoURI」としましょう。カメラのインテント結果を処理する OnActivityResult 関数では、その URI を呼び出して次のように使用します (はい、あなたは「正しく見ています。記憶された URI だけにデータ インテントを使用していません):
Bitmap imageFromCam = MediaStore.Images.Media.GetBitmap(this.ContentResolver, Android.Net.Uri.Parse(myPhotoURI));
ギャラリーから画像を取得するには、この質問の回答からSelectImageFromStorage() 関数を使用し、OnActivityResult チェックで選択した画像の URI を取得します。
Android.Net.Uri selectedImageUri = data.ToURI();
それが私にとって魅力のように働いたものです。
-[Webサービスへのデータ送信]-
画像データをバイト配列として受信する WCF または Web サービスを使用しているとします。この質問に対する承認された回答は、イメージをバイト配列に変換する方法の良い例を示しています (とにかく、これは WCF Web サービスが必要とするものです)。
これらの方向性があなたを前進させると思います。
これがこれまでの最も近い例です...これにより、追加の出力が使用されたときに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
}
}
}