2012-01-20 64 views
0

相機拍攝的圖像是324 x 190.我如何使用android intent拍攝較大的照片?當前代碼:來自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方法。

後來,當我在該表上運行一個選擇使用

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

它僅僅是一個324×190的圖像顯示在我的ASP.net項目在瀏覽器中的圖像。我需要它可以從意圖中獲取更大的照片,或者使用ASP.net中的數據網址來顯示更大的照片。

回答

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