2017-05-16 4 views
0

Xamarin Forms 솔루션이 있으며 iOS 프로젝트에서 버튼 클릭시 사진을 만들려고합니다. 문제는 이미지가 매우 어둡다는 것입니다. 거의 검은 색입니다. 왜 이런 일이 일어나는 걸까요? 다음 코드는 다음과 같습니다AVCaptureSession으로 인해 이미지가 매우 어둡습니다.

여기
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

답변

0

라인 :

_captureSession.AddOutput(output); 

이 (StartRunning 전) 버튼을 클릭하기 전에 가야한다. 그 변화로 이미지는 정상적인 밝기를 가지며 또한 회전이 필요 없습니다.