0

私のアプリケーションでは、カメラで写真を撮り、ファイルに保存したいと考えています。私のアプリケーションでは写真の品質が非常に重要なので、圧縮して保存すると画質が失われます。これは私のコードです:

 protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
       base.OnActivityResult(requestCode, resultCode, data);
        FileOutputStream outStream = null;
       saveFullImage();
       if ((requestCode == TAKE_PICTURE))
       {

           if (data != null)
           {
               if (data.HasExtra("data"))
               { 
                   Bitmap pic = (Bitmap)data.Extras.Get("data");



                   System.IO.MemoryStream baos = new System.IO.MemoryStream();
                   pic.Compress(Bitmap.CompressFormat.Png, 100, baos);
                   byte[] byte_img_data = baos.ToArray();
                   outStream = new FileOutputStream(outputFileUri.Path);

                   outStream.Write(byte_img_data);
                   outStream.Close();



               }
           }
       }
    }

私を助けてください。ありがとう。

4

2 に答える 2

0
pic.Save("yourfilenamehere.png", ImageFormat.Png);

ファイルに書き込むことがわかっている場合は、これで十分です (他のオーバーロードについては、Image クラスの Save メソッドを確認してください)。

この圧縮はロスレスであるため、この方法で細部を失うことはありません。

于 2012-10-08T13:28:46.603 に答える
0

皆さんありがとうございます。

次のコードを使用しても、画像の詳細は変更されません。

var mediaScanIntent = new Intent(Intent.ActionMediaScannerScanFile);
var contentUri = Android.Net.Uri.FromFile(_file);
mediaScanIntent.SetData(contentUri);
this.SendBroadcast(mediaScanIntent);
于 2012-10-09T05:12:23.377 に答える