xamarin - 为什么使用 AVCaptureSession 时图像非常暗

标签 xamarin xamarin.ios avcapturesession

我们有 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);
    }
}

这是图片: enter image description here

最佳答案

线路:

_captureSession.AddOutput(output);

应该在单击按钮之前(在开始运行之前)。更改后,图像具有正常亮度,并且不需要旋转。

关于xamarin - 为什么使用 AVCaptureSession 时图像非常暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43999046/

相关文章:

ios - Xamarin Studio 5.9.7(内部版本 9)和 Xamarin.iOS 9.0.1.18 中的代码设计错误

ios - Xamarin.iOS 中的自定义 SQLite 函数

ios - 如何更改缩短的后退按钮标题?

iOS:是否可以扫描多个二维码、检测它们并选取一个?

.net - Xamarin SimpleAudioPlayer间隙重新启动循环

json - Xamarin + JSON.Net

ios - iPhone : Toggling front/back AVCaptureDeviceInput camera when processing individual frames via setSampleBufferDelegate

ios - 导航栏和 AVCaptureSession

ios - Xamarin IOS 部署失败。 info.plist 上的 FileNotFoundException

ios - Xamarin.iOS:对象已处置但内存未回收