【发布时间】: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