2012-01-20 7 views
0

カメラが撮影している画像は324 x 190です。どのようにしてアンドロイドインテントを使用して大きな写真を撮ることができますか?現在のコード:写真を引き込むImage_Captureインテント

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
StartActivityForResult(intent, 0); 

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) 
    { 
     base.OnActivityResult(requestCode, resultCode, data); 

     if (resultCode == Result.Ok && requestCode == 0) 
     { 
      var settings = PreferenceManager.GetDefaultSharedPreferences(this); 
      var assetID = settings.GetString("unit", null); 
      var store = settings.GetString("store", null); 
      DateTime dt = DateTime.Now; 
      var date1 = dt.ToString("MM-dd-yyyy"); 
      var time1 = dt.ToString("HH:mm"); 

      Bitmap bitmap = (Android.Graphics.Bitmap)data.Extras.Get("data"); 

      using (var stream = new System.IO.MemoryStream()) 
      { 
       bitmap.Compress(Android.Graphics.Bitmap.CompressFormat.Png, 0, stream); 
       byte[] imageBytes = stream.ToArray(); 
       string base64String = Convert.ToBase64String(imageBytes); 

       inst.saveImage(base64String, store, assetID, date1, time1); 
      } 

     } 

    } 

inst.saveImage ...は、イメージをSQL Serverデータベースに保存するWebメソッドです。

は、その後、私はそれだけで324 X 190画像です

"data:image/png;base64," + base64 string from SQL, 

使用して、私のASP.netのプロジェクトでは、ブラウザで画像を表示するために、そのテーブル上で選択を実行したとき。私はそれがインテントからより大きな写真を撮るか、ASP.netのデータURLを使ってそれをより大きく表示する方法が必要です。

答えて

1

IMAGE_CAPTUREの意図からフルサイズの画像を取得するには、あなたが使用する必要があります。このような

intent.PutExtra (MediaStore.ExtraOutput, contentResolverUri); 

何か:

ContentValues values = new ContentValues(); 
values.Put (MediaStore.Images.ImageColumns.Title, title); 
values.Put (MediaStore.Images.ImageColumns.Description, description); 
Uri uri = ContentResolver.Insert (MediaStore.Images.Media.ExternalContentUri, values); 

intent.PutExtra (MediaStore.ExtraOutput, uri); 

http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE