我们有 Xamarin Forms 解决方案,在 iOS 项目中,我们尝试在单击按钮时创建照片。问题是图像很暗。它几乎是黑色的。为什么会发生这种情况?这是一个代码:
var _captureSession = new AVCaptureSession();
var _captureDevice = AVCaptureDevice.GetDefaultDevice(AVMediaType.Video);
var _captureDeviceInput = AVCaptureDeviceInput.FromDevice(_captureDevice);
_captureSession.AddInput(_captureDeviceInput);
_captureSession.StartRunning();
private async void OnButtonClick()
{
var output = new AVCaptureStillImageOutput { OutputSettings = new NSDictionary(AVVideo.CodecKey, AVVideo.CodecJPEG) };
_captureSession.AddOutput(output);
var buffer = await output.CaptureStillImageTaskAsync(output.Connections[0]);
NSData data = AVCaptureStillImageOutput.JpegStillToNSData(buffer);
UIImage image = UIImage.LoadFromData(data);
//image = RotateImage(image);
NSData imageData = image.AsPNG();
byte[] byteArray = imageData.ToArray();
IFolder folder = FileSystem.Current.LocalStorage;
IFile file = await folder.CreateFileAsync("image.png", CreationCollisionOption.ReplaceExisting);
using (Stream stream = await file.OpenAsync(PCLStorage.FileAccess.ReadAndWrite))
{
stream.Write(image, 0, image.Length);
}
}
最佳答案
线路:
_captureSession.AddOutput(output);
应该在单击按钮之前(在开始运行之前)。更改后,图像具有正常亮度,并且不需要旋转。
关于xamarin - 为什么使用 AVCaptureSession 时图像非常暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43999046/