This commit is contained in:
David Bozjak 2015-09-24 09:37:02 +02:00
Родитель 24ec7585f7
Коммит 8b6a431edc
11 изменённых файлов: 347 добавлений и 151 удалений

Просмотреть файл

@ -67,3 +67,6 @@ Allows adjustments of saturation and lightness around Master, Red, Green, Blue,
####MaybeTask<T>
Value type that either holds a result **or** a task-of-result. This helps interactive app scenarios, keeping GC activity in check when dealing with mixed sync/async operations, as otherwise each new Task causes a heap allocation.
## Reference
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)

Просмотреть файл

@ -72,9 +72,9 @@ CpuImageWorker should override the **OnProcess** method.
**Reference**
## Reference
[Lumia Imaging SDK](https://dev.windows.com/en-us/featured/lumia)
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
[Direct2D Helpers](https://msdn.microsoft.com/en-us/library/windows/desktop/dn879811(v=vs.85).aspx)
## System requirements
@ -87,7 +87,7 @@ CpuImageWorker should override the **OnProcess** method.
## Build the sample
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
@ -102,8 +102,3 @@ The next steps depend on whether you just want to deploy the sample or you want
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select **Debug** \> **Start Without Debugging**.
License
-------
See the **license.txt** file delivered with this project

Просмотреть файл

@ -0,0 +1,43 @@
Edit Showcase
=============
Edit Showcase is an example app that demonstrates the use of effects on still images. This example app displays the camera viewfinder for taking a picture; alternatively, an existing photo can be selected. The photo is then processed with the predefined effects. In addition, custom controls are implemented for manipulating the effect properties in real time. The processed image can be saved in JPEG format into the camera roll.
## Compatibility
- Compatible with Windows 10 and Windows 10 Mobile.
- Developed with Visual Studio 2015.
- Compiling the project requires the Lumia Imaging SDK.
## Design
The application launches with a demonstration image, and generates a list of effect thumbnails of the image. Tap an effect thumbnail to apply the effect to the full image. .
## Build the sample
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.
**Deploying the sample:**
1. Select **Build** \> **Deploy Solution**.
**Deploying and running the sample:**
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select **Debug** \> **Start Without Debugging**.
## Reference
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
## System requirements
**Client:** Windows
**Server:** Windows 10
**Phone:** Windows 10 Technical Preview

Просмотреть файл

@ -2,7 +2,7 @@ Lumia Imaging SDK Win2D Demo
---------------------
This sample demonstrates how to use **Lumia Imaging Effects** together with **Win2D Effects**. The sample covers two scenarios. First it shows how to interop between Lumia Imaging effects and Win2D effects using SoftwareBitmap.
Second scenario demonstrates how to use a IDirect3DSurface to interop between the to SDK´s.
Second scenario demonstrates how to use a IDirect3DSurface to interop between the to SDKs.
Specifically, this sample will cover how to:
@ -15,16 +15,15 @@ Specifically, this sample will cover how to:
**Samples**
[UniversalCameraSample](https://github.com/Microsoft/Windows-universal-samples/tree/master/universalcamerasample)
[How to preview video from a webcam](https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868171.aspx)
[Media capture using capture device](https://code.msdn.microsoft.com/windowsapps/Media-Capture-Sample-adf87622)
**Reference**
## Reference
[Lumia Imaging SDK](https://dev.windows.com/en-us/featured/lumia)
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
[Windows.Media.Capture.MediaCapture namespace](https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.devices.aspx)
@ -45,7 +44,7 @@ Specifically, this sample will cover how to:
## Build the sample
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
@ -60,8 +59,3 @@ The next steps depend on whether you just want to deploy the sample or you want
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select **Debug** \> **Start Without Debugging**.
License
-------
See the **license.txt** file delivered with this project

Просмотреть файл

@ -1,5 +1,5 @@
Quick Start
===============
===========
Quick Start application demonstrates how to create a simple imaging application
using the Lumia Imaging SDK. It shows how to apply a filter effect to an
@ -8,8 +8,7 @@ image and save it to file.
The example has been developed as a Universal app for Windows 10
For more information on implementation, visit Microsoft Windows Dev Center:
http://dev.windows.com/en-us/featured/lumia
For more information on implementation, visit Microsoft Windows Dev Center: [Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
1. Usage
@ -87,17 +86,8 @@ Make sure you have the following installed:
DEBUG -> Start (Without) Debugging
6. License
-------------------------------------------------------------------------------
See the license text file delivered with this project
7. Version history
6. Version history
-------------------------------------------------------------------------------
* 1.0.0.0: First public release of Quick Start for Windows 10
8. License
-------
See the **license.txt** file delivered with this project

Просмотреть файл

@ -0,0 +1,206 @@
Quick Start Using HTML5 and JScript
====================================
This quick start topic demonstrates how to create an app by using HTML5 and JScript.
## Create a new project
To create a new project, follow these steps:
1. In Visual Studio, select **File** > **New** > **Project...**
2. In the New Project window, select **Other Languages** > **JavaScript** > **Blank App (Windows Phone)**.
3. Press **OK**.
A project has now been created for you.
## Include libraries to your project
Before starting to use the functionality provided by the SDK, the Lumia Imaging SDK libraries must be added to the project. For detailed instructions, see the chapter [Adding libraries to the project](../adding-libraries-to-the-project.html). Remember to remove the Any CPU configuration.
## Define your HTML5 UI
The UI we will build for this tutorial is very simple. There will be two HTML image controls and a button. One HTML image control will display the original image, and the other will display the filtered image.
Here are the steps to accomplish this:
1. Open the Package.appxmanifest, select the **Application** tab, and check the boxes for **Landscape** and **Landscape-flipped** under **Supported rotations**.
2. Open the **Capabilities** tab and check the box for **Pictures Library** capability.
3. In the Solution Explorer pane in Visual Studio, open the default.html.
4. Add all the controls that make our UI. In the HTML view, search for the **body** element.
HTML
```
<body class="phone">
<p>Content goes here</p>
</body>
```
Replace the body and all its content with this code:
HTML
```
<body>
<div id="contentGrid" >
<div id="original">
<img id="originalPhoto" src="" width="167" height="100" />
</div>
<div id="filtered">
<img id="filteredPhoto" src="" width="100%" height="100%" />
</div>
<div id="buttons">
<input id="loadButton" type="button" value="Pick an image" />
</div>
</div>
</body>
```
In the preceding code, we define the two preview images, filteredPhoto and originalPhoto, without specifying any source for the image to display. We will load the images later; code examples will also be given in the chapters below.
## Pick an image from the camera roll
Next, open the default.css in the css folder. Replace the content with the following:
CSS
```
body {
}
#contentGrid {
display: -ms-grid;
-ms-grid-rows: 85% 15%;
height: 100%;
width: 100%;
background-color: #1e90ff;
}
#original {
-ms-grid-row: 1;
margin: 12px 0px 0px 12px;
z-index: 99;
}
#filtered {
-ms-grid-row: 1;
}
#buttons {
-ms-grid-row: 2;
-ms-grid-row-align: center;
-ms-grid-column-align: center;
}
#loadButton {
margin-left: 10px;
}
```
The code block above is for setting the layout of the screen.
![](../Images/samples/quickstart_wp81_choose_file.png)
To pick the image, we will use the **FileOpenPicker**, which is part of the Windows Phone 8.1 SDK. You should note that this code is different for Windows and Windows Phone. In Windows, you must use the **pickSingleFileAsync** method, and in Windows Phone, you would use the **pickSingleFileAndContinue** method. Open the default.js file inside the js folder and replace the **app.onactivated** with the following:
JScript
```
app.onactivated = function (args)
{
if (args.detail.kind === activation.ActivationKind.launch)
{
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated)
{
// TODO: This application has been newly launched. Initialize
// your application here.
}
else
{
// TODO: This application has been reactivated from suspension.
// Restore the application state here.
}
args.setPromise(WinJS.UI.processAll());
var getPhotoButton = document.getElementById("loadButton");
getPhotoButton.addEventListener("click", getPhotoButtonClickHandler, false);
}
else if (args.detail.kind == activation.ActivationKind.pickFileContinuation)
{
var file = args.detail.detail[0].files[0];
var imageBlob = URL.createObjectURL(file);
document.getElementById("originalPhoto").src = imageBlob;
loadImage(file);
}
};
```
**pickSingleFileAndContinue** will launch the file picker. When the user has chosen a photo, control is returned to the application through the **app.onactivated** method. We check if the activation was done through **FilePicker** by checking the parameter detail type against **ActivationKind.pickFileContinuation**. There we set the **originalPhoto** to show the image we just loaded, and call the **loadImage** method, which will have the Imaging SDK specific code.
To open the **FileOpenPicker**, we need to add the following method to the **default.js** file:
JScript
```
function getPhotoButtonClickHandler(args)
{
var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
openPicker.suggestedStartLocation =
Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
openPicker.viewMode =
Windows.Storage.Pickers.PickerViewMode.thumbnail;
openPicker.fileTypeFilter.clear();
openPicker.fileTypeFilter.append(".bmp");
openPicker.fileTypeFilter.append(".png");
openPicker.fileTypeFilter.append(".jpeg");
openPicker.fileTypeFilter.append(".jpg");
openPicker.pickSingleFileAndContinue();
}
```
## Use Effect to decode an image with an effect
Now, we have access to the file that the user selected, and we need to implement the filter and rendering to the image. In this tutorial, we apply the Cartoon filter and the Flip filter to the image, and then save it and display the resulting image in the HTML **img** control. The complete code of the **loadImage** becomes:
JScript
```
function loadImage(file)
{
if (file)
{
var imageStream = new Lumia.Imaging.StorageFileImageSource(file);
var cartoonEffect = new Lumia.Imaging.Artistic.CartoonEffect(imageStream);
var flipEffect = new Lumia.Imaging.Transforms.FlipEffect(cartoonEffect, Lumia.Imaging.Transforms.FlipMode.horizontal);
var renderer = new Lumia.Imaging.JpegRenderer(flipEffect);
// Create the filtered file and save it.
renderer.renderAsync().then(function (buffer) {
Windows.Storage.KnownFolders.picturesLibrary.createFileAsync("cartoon.jpg", Windows.Storage.CreationCollisionOption.replaceExisting).then(function (storagefile) {
storagefile.openAsync(Windows.Storage.FileAccessMode.readWrite).then(function (storageStream) {
storageStream.writeAsync(buffer).then(function () {
storageStream.close();
var imageBlob = URL.createObjectURL(storagefile, { oneTimeOnly: true });
document.getElementById("filteredPhoto").src = imageBlob;
});
});
});
});
}
}
```
First, create the filters and set the image stream from the selected image. Then, create a list of filters which we pass to the **JpegRenderer**. Finally, save the filtered image and update the screen with the new image. The **JpegRenderer** takes the **FilterEffect** as a parameter to apply to the final image. After the rendering is done, we use the **createFileAsync** method to save the image as cartoon.jpg to the picture library and load it to the screen.
## Running the application
To run the application:
1. In the standard toolbar in Visual Studio, select **Device** or **Emulator**, and then select **Debug**.
2. Build the application.
3. Connect a device (if you are deploying it on device) and run.
4. Select an image using the **Pick an image** button.
5. You should see the main page that contains the decoded image with a Cartoon style filter effect added.
## Reference
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)

Просмотреть файл

@ -1,5 +1,5 @@
Quick Start
===============
===========
Quick Start application demonstrates how to create a simple imaging application
using the Lumia Imaging SDK. It shows how to apply a filter effect to an
@ -8,8 +8,7 @@ image and save it to file.
The example has been developed as a Universal app for Windows 10
For more information on implementation, visit Microsoft Windows Dev Center:
http://dev.windows.com/en-us/featured/lumia
For more information on implementation, visit Microsoft Windows Dev Center: [Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
1. Usage
@ -98,6 +97,3 @@ See the license text file delivered with this project
* 1.0.0.0: First public release of Quick Start for Windows 10
8. License
-------
See the **license.txt** file delivered with this project

Просмотреть файл

@ -1,5 +1,5 @@
Quick Start
===============
===========
Quick Start application demonstrates how to create a simple imaging application
using the Lumia Imaging SDK. It shows how to apply a filter effect to an
@ -8,8 +8,7 @@ image and save it to file.
The example has been developed as a Universal app for Windows & Windows Phone 8.1
For more information on implementation, visit Lumia Developer's Library:
http://go.microsoft.com/fwlink/?LinkId=528367
For more information on implementation, visit Lumia Developer's Library: [Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
1. Usage
@ -87,13 +86,7 @@ Make sure you have the following installed:
DEBUG -> Start (Without) Debugging
6. License
-------------------------------------------------------------------------------
See the license text file delivered with this project
7. Version history
6. Version history
-------------------------------------------------------------------------------
* 1.0.0.0: First public release of Quick Start for Windows and Windows Phone 8.1

Просмотреть файл

@ -31,9 +31,9 @@ Specifically, this sample will cover how to:
[Media capture using capture device](https://code.msdn.microsoft.com/windowsapps/Media-Capture-Sample-adf87622)
**Reference**
## Reference
[Lumia Imaging SDK](https://dev.windows.com/en-us/featured/lumia)
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)
[Windows.Media.Capture.MediaCapture namespace](https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.devices.aspx)
@ -66,7 +66,7 @@ Specifically, this sample will cover how to:
## Build the sample
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
1. Start Visual Studio 2015 and select **File** \> **Open** \> **Project/Solution**.
2. Press Ctrl+Shift+B, or select **Build** \> **Build Solution**.
## Run the sample
@ -81,8 +81,3 @@ The next steps depend on whether you just want to deploy the sample or you want
1. To debug the sample and then run it, press F5 or select **Debug** \> **Start Debugging**. To run the sample without debugging, press Ctrl+F5 or select **Debug** \> **Start Without Debugging**.
License
-------
See the **license.txt** file delivered with this project

Просмотреть файл

@ -1,12 +1,7 @@
Image Sequencer
===============
Image Sequencer is an example application demonstrating the use of Lumia Imaging SDKs Image Aligner and Gif Renderer APIs for creating cinemagraph-style animations in animated GIF format. The application has a set of hard coded image sequences to be used for basis of the alignment and animation. User can manipulate the animation by limiting the animated area to a small rectangular section, and by stabilizing the images in order to eliminate camera shake. Animations with still backgrounds and minor repeated movement are commonly called cinemagraphs.
This example application is hosted in GitHub:
https://github.com/Microsoft/image-sequencer/
For more information on implementation visit Lumia Developer's Library: http://go.microsoft.com/fwlink/?LinkId=528374
Image Sequencer is an example application demonstrating the use of Lumia Imaging SDKs Image Aligner and Gif Renderer APIs for creating cinemagraph-style animations in animated GIF format. The application has a set of hard coded image sequences to be used for basis of the alignment and animation. User can manipulate the animation by limiting the animated area to a small rectangular section, and by stabilizing the images in order to eliminate camera shake. Animations with still backgrounds and minor repeated movement are commonly called cinemagraphs.
Developed with Microsoft Visual Studio Express 2015
@ -19,7 +14,7 @@ Instructions
Make sure you have the following installed:
* Windows 8.1
* Windows 10
* Visual Studio Express 2015
* Nuget 3.1.6 or later
@ -66,3 +61,6 @@ Known issues
* Application tombstoning is not supported.
## Reference
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)

161
readme.md
Просмотреть файл

@ -1,72 +1,68 @@
Sample projects
===============
Lumia Imaging SDK projects
==========================
## Quick start
### Contents
- [1. Quick start](#quickstart)
- [2. Sample projects](#samples)
- [3. Lumia Imaging SDK Extras](#extras)
- [3.1. Philosophy](#philosophy)
- [3.2. Managed (C#/.NET)](#managed)
- [3.2.1 Layer system](#layers)
- [3.2.2 Image sources/effects](#sources)
- [3.2.3 Utility code](#utility)
- [4. Reference](#reference)
## <a id="quickstart"></a>1. Quick start
Quick Start is a sample project accompanying the tutorial that helps to get your first app that utilizes the Lumia Imaging SDK up and running. This sample implements the following basic tasks: picking an image from the camera roll, applying an effect (Cartoon) to it, and processing the filtered image to be rendered and saved as a full resolution JPEG.
- Quick Start (C#) for Windows 10 and Windows 10 Mobile
- Quick Start (Visual Basic) for Windows 10 and Windows 10 Mobile
- Quick Start for Windows Phone 10 HTML5/JScript
- Quick Start for Windows 8.1 and Windows Phone 8.1
## Sample projects
Quick Start is a sample project accompanying the tutorial that helps to get your first app that utilizes the Lumia Imaging SDK up and running. This sample implements the following basic tasks: picking an image from the camera roll, applying an effect to it, and processing the filtered image to be rendered and saved as a full resolution JPEG.
<table>
<colgroup>
<col width="33%" />
<col width="33%" />
<col width="33%" />
</colgroup>
<thead>
<tr class="header">
<th align="left"><strong>Edit Showcase</strong></th>
<th align="left"><strong>Video Effect</strong></th>
<th align="left"><strong>Lumia Imaging SDK and Win2D Demo</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top"><p>Edit Showcase is an example app that demonstrates the use of effects on still images. This example app displays the camera viewfinder for taking a picture; alternatively, an existing photo can be selected. The photo is then processed with the predefined effects. In addition, custom controls are implemented for manipulating the effect properties in real time. The processed image can be saved in the JPEG format into the camera roll.</p>
</td>
<td align="left" valign="top"><p>Video Effect sample is an example app that demonstrates the capabilities and performance of the Lumia Imaging SDK by allowing the user to preview and apply a number of real-time effects to camera preview. The effects are applied to the stream received from the camera and shown in the viewfinder. The effects can be changed using the buttons in the application bar. This example app supports recording and capturing of videos and photos.</p>
</td>
<td align="left" valign="top"><p>Lumia Imaging SDK and Win2D Demo is an example app that demonstrates the use of the Lumia Imaging SDK together with the Win2D API.</p>
</td>
</tr>
</tbody>
<tr>
<th colspan="1" align="left">Quick Starts</th>
</tr>
<tr>
<td><a href="Samples/QuickStart/cs">Quick Start (C#) for Windows 10 and Windows 10 Mobile</a></td>
</tr>
<tr>
<td><a href="Samples/QuickStart/vb">Quick Start (Visual Basic) for Windows 10 and Windows 10 Mobile</a></td>
</tr>
<tr>
<td><a href="Samples/QuickStart/js">Quick Start for Windows Phone 10 HTML5/JScript</a></td>
</tr>
<tr>
<td><a href="Samples/QuickStartUniversal8.1">Quick Start for Windows 8.1 and Windows Phone 8.1</a></td>
</tr>
</table>
## <a id="samples"></a>2. Sample projects
<table>
<colgroup>
<col width="33%" />
<col width="33%" />
<col width="33%" />
</colgroup>
<thead>
<tr class="header">
<th align="left"><strong>Image Sequencer</strong></th>
<th align="left"><strong>Custom Effect Sample</strong></th>
<th align="left"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" valign="top"><p>Image Sequencer is an example app that demonstrates the use of the Image Aligner and GIF Renderer APIs for creating Cinemagraph-style animations in the animated GIF format. There are also some example image sequences that can be used as a basis for the alignment and animation.</p>
</td>
<td align="left" valign="top"><p>Custom Effect sample demonstrates how to create Custom Effects to do image manipulation both on the CPU and the GPU.</p>
</td>
<td align="left" valign="top">
</td>
</tr>
</tbody>
<tr>
<th colspan="2" align="left">Samples</th>
</tr>
<tr>
<td><a href="Samples/EditShowcase">Edit Showcase</a></td>
<td>Edit Showcase is an example app that demonstrates the use of effects on still images. The photo is processed with the predefined effects. In addition, custom controls are implemented for manipulating the effect properties in real time. The processed image can be saved in the JPEG format into the camera roll.</td>
</tr>
<tr>
<td><a href="Samples/VideoEffectSample">Video Effect</a></td>
<td>Video Effect sample is an example app that demonstrates the capabilities and performance of the Lumia Imaging SDK by allowing the user to preview and apply a number of real-time effects to camera preview. The effects are applied to the stream received from the camera and shown in the viewfinder. The effects can be changed using the buttons in the application bar. This example app supports recording and capturing of videos and photos.</td>
</tr>
<tr>
<td><a href="Samples/LumiaImagingSDKWin2DDemo">Lumia Imaging SDK and Win2D Demo</a></td>
<td>Lumia Imaging SDK and Win2D Demo is an example app that demonstrates the use of the Lumia Imaging SDK together with the Win2D API.</td>
</tr>
<tr>
<td><a href="Samples/image-sequencer">Image Sequencer</a></td>
<td>Image Sequencer is an example app that demonstrates the use of the Image Aligner and GIF Renderer APIs for creating Cinemagraph-style animations in the animated GIF format. There are also some example image sequences that can be used as a basis for the alignment and animation.</td>
</tr>
<tr>
<td><a href="Samples/CustomEffectSample">Custom Effect Sample</a></td>
<td>Custom Effect sample demonstrates how to create Custom Effects to do image manipulation both on the CPU and the GPU.</td>
</tr>
</table>
Lumia Imaging SDK Extras
========================
## <a id="extras"></a>3. Lumia Imaging SDK Extras
This repository contains extra functionality and sample code for the Lumia Imaging SDK.
@ -74,73 +70,60 @@ The code is provided under the MIT license, and can therefore be conveniently us
Parts contained will typically target the latest release version of the Lumia Imaging SDK, unless otherwise marked.
###Philosophy
### <a id="philosophy"></a>3.1 Philosophy
- The **projects** (.csproj, .vcxproj etc) collect various classes/features, but are mainly for sample and testing purposes.
- This repository should be considered as a *set of individual classes*, not as a library.
- New revisions may not be compatible with old ones.
- Therefore, if you find something useful, it may be easier to *isolate the part you want* instead of taking a dependency on all the projects included.
---
Managed (C#/.NET)
==
##Layer system
### <a id="managed"></a>3.2 Managed (C#/.NET)
#### <a id="layers"></a>3.2.1 Layer system
Managed/Lumia.Imaging.Extras.Layers/
Allows to describe image processing as a list of layers, like the familiar representation found in photo editing apps.
After configuring the layers, an IImageProvider endpoint can be easily retrieved and rendered.
###Features
**Features**
- Layers and Adjustment Layers
- Layer styles (blend function, opacity, transparency mask, scaling/translation)
- Tuned for performance and low GC pressure in interactive scenarios.
- Flexible, construction of actual objects can be deferred etc.
##Image sources/effects
#### <a id="sources"></a>3.2.2 Image sources/effects
Managed/Lumia.Imaging.Extras.ImageProviders/
####NoiseImageSource
**NoiseImageSource**
A noise generator image source. Internally uses a ColorImageSource and a NoiseFilter.
####HighpassEffect
**HighpassEffect**
A "highpass" effect, similar to familiar ones in photo editing apps.
####DepthofField
**DepthofField**
A set of high-level scenarios showing how to set up a "DoF" effect.
####HslAdjustmentEffect
**HslAdjustmentEffect**
Example of an effect that does higher level HSL adjustments, similar to familiar ones in photo editing apps.
Allows adjustments of saturation and lightness around Master, Red, Green, Blue, Cyan, Magenta and Yellow channels.
##Utility code
#### <a id="utility"></a>3.2.3 Utility code
Managed/Lumia.Imaging.Extras.Utility/
####ImageProviderExtensions
**ImageProviderExtensions**
- **GetBitmapAsync** overloads that help to reuse bitmaps.
- **Rotate** method, making it convenient to rotate an image provider.
####BitmapExtensions
**BitmapExtensions**
- **CopyTo**/**ToWriteableBitmap**: Conversions to WriteableBitmap. These help in interactive scenarios, and can be useful for keeping work off the UI thread.
####BufferExtensions
**BufferExtensions**
- **AsBufferTask**: Conversion from Task&lt;IBuffer&gt; to a Lumia Imaging SDK IBufferProvider that can be passed into a BufferProviderImageSource. This can be useful to avoid having to await the task-of-buffer before setting up an image source.
####MaybeTask&lt;T&gt;
**MaybeTask&lt;T&gt;**
Value type that either holds a result **or** a task-of-result. This helps interactive app scenarios, keeping GC activity in check when dealing with mixed sync/async operations, as otherwise each new Task causes a heap allocation.
### <a id="reference"></a>4. Reference
<!--Please do not edit the data in the comment block below.-->
<!--
TOCTitle : Sample projects
RLTitle : Lumia Imaging SDK Sample projects
KeywordA : e7c7bfa2-31c0-492a-a0d1-bbb90fbc8910
AssetID : e7c7bfa2-31c0-492a-a0d1-bbb90fbc8910
Locale : en-us
TopicType : kbOrient
DocSet : lumia-imaging-sdk
ProjType : lumia-imaging-sdkProj
Technology : Lumia Imaging
Product : Lumia Imaging SDK 2.0
productversion : 20
-->
[Lumia Imaging SDK](http://go.microsoft.com/fwlink/?LinkID=521939)