Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Captured photo with stripes

I'm using MediaCapture class to take a photo with Windows Phone 8.1 Runtime. The code, where I take a picture looks like this:

// create a file
StorageFile photoFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("myFirstPhoto.jpg", CreationCollisionOption.ReplaceExisting);

// take a photo with choosen Encoding
await captureManager.CapturePhotoToStorageFileAsync(ImageEncodingProperties.CreateJpeg(), photoFile);

The code is working quite fine, as I get a picture, but with strange stripes on left and right side:

enter image description here

I'm trying to find a solution for this problem, but without success. Am I missing something?

EDIT - Photos takes from build-in app are without stripes, so this seems not to be a problem with hardware.

like image 381
Romasz Avatar asked Mar 20 '23 14:03

Romasz


1 Answers

Ok I've figured it out myself - it's a problem with resolution which is set as default when using MediaCapture. If you set maximum resolution just after Initializing MediaCapture then there will be no stripes:

// just after initialization
var maxResolution = captureManager.VideoDeviceController.GetAvailableMediaStreamProperties(MediaStreamType.Photo).Aggregate(
                    (i1, i2) => (i1 as VideoEncodingProperties).Width > (i2 as VideoEncodingProperties).Width ? i1 : i2);
await captureManager.VideoDeviceController.SetMediaStreamPropertiesAsync(MediaStreamType.Photo, maxResolution);
like image 77
Romasz Avatar answered Mar 24 '23 04:03

Romasz