High Dynamic Range Imaging
(HDR) is a technique that uses multiple exposures of the same shot in order to reproduce a greater dynamic range
than is possible with standard digital imaging or photographic techniques. The Universal Windows Platform (UWP) empowers you to build apps that take HDR photographs and videos, using digital compositing to overcome some of the limitations of standard photography and videography.
Unlike the human eye, standard cameras are not able to capture a great dynamic range (the difference between your darkest and brightest tones). You can use a high exposure in order to allow more detail to enter your picture, or a lower exposure in order to remove noise under bright lighting conditions. When your composition contains both bright and dark areas in high contrast, HDR provides a way to capture the richness of the items in shadow as well as the vibrancy of the highlights.
In the past, HDR was typically done in post-processing with photo-imaging software. Today, it can be done in real-time on a camera phone or tablet as the photo or video is being taken. This post will walk you through how to add HDR functionality to your own custom camera app in UWP:
MediaCapture API basics: photos and videos
HDR photography and videography are extensions to the core functionality of the MediaCapture
class. To learn how to use HDR, consequently, itís important to first understand how to capture standard photos and videos in UWP.
The first thing you want to do when starting a new Universal Windows project that uses MediaCapture
class is to double click the app manifest file in Visual Studio and configure your appís capabilities in the Capabilities tab. You are going to want to enable a lot of features related to photos and videos for the code in this post. Select Microphone, Pictures Library, Videos Library and Webcam in order to gain access to the sensors and storage locations you will need. Also, to keep this sample code easy, go to the Application tab and select Landscape as the only supported rotation. In a full camera app, you will want to keep track of device rotationóbut we can cut down on a lot of code by not doing it here....