【问题标题】:Problems with the brightness of the photo taken (Xamarin.Android)拍摄照片的亮度问题 (Xamarin.Android)
【发布时间】:2019-11-23 10:27:58
【问题描述】:

我正在 Xamarin Android 中创建一个应用程序。 UI 是一个按钮,通过单击拍摄照片,但没有预览的外观。用于拍照和相机设置的代码:

 private void TakePhotoButton_Click(object sender, EventArgs e)
    {
        camera = Open();
        try
        {
            camera.SetPreviewTexture(new SurfaceTexture(10));
        }
        catch (IOException e1)
        {
            //Log.e(Version.APP_ID, e1.getMessage());
        }

        Parameters newParameters = GetModifiedCameraParameters();
        camera.SetParameters(newParameters);
        camera.StartPreview();
        camera.TakePicture(null, null, new PictureCallback());
    }

    private Parameters GetModifiedCameraParameters()
    {
        Parameters parameters = camera.GetParameters();
        Size size = FindMaxSize(parameters.SupportedPictureSizes);

        parameters.SetPreviewSize(640, 480);
        parameters.SetPictureSize(size.Width, size.Height);
        parameters.Set("contrast", "0");
        parameters.FlashMode = Parameters.FlashModeOff;
        parameters.FocusMode = Parameters.FocusModeAuto;
        parameters.SceneMode = Parameters.SceneModeAuto;
        parameters.AutoExposureLock = false;
        parameters.WhiteBalance = Parameters.WhiteBalanceAuto;
        parameters.ExposureCompensation = 12;
        parameters.PictureFormat = ImageFormat.Jpeg;
        parameters.JpegQuality = 100;
        parameters.SetRotation(90);    

        return parameters;
    }

    private Size FindMaxSize(IList<Size> sizes)
    {
            Size[] orderByDescending = sizes
                                    .OrderByDescending(x => x.Width)
                                    .ToArray();
            return orderByDescending[0];
    }

结果是一张质量很好但亮度较低的照片。我尝试改变曝光,ISO。确实增加了照片对比度变化的亮度。但是照片还是不够亮。清单文件如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.workwithcamera" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="24" />
    <application android:allowBackup="true" android:icon="@mipmap/ic_launcher_round" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"></application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.CAMERA"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-feature android:name="android.hardware.camera" />
  <uses-feature android:name="android.hardware.camera.autofocus" />
</manifest>

【问题讨论】:

    标签: java android xamarin.android


    【解决方案1】:

    Camera参数中没有设置亮度的方法,可以使用Media Plugin。

    该示例适用于 xamarin.forms android。 https://github.com/jamesmontemagno/MediaPlugin

    您可以手动增加亮度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-15
      • 2011-03-30
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多