Reader Level:

Capture Picture From Camera and Save in Media Library in Windows Phone

By Dhananjay Kumar on Feb 08, 2012
In this article we will see how to capture a photo using the camera and saving it in the Media Library.
  • 0
  • 0
  • 8070

In this article we will see how to capture a photo using the camera and saving it in the Media Library.

The CameraCaptureTask chooser is used to capture a photo using the Windows Phone's Camera. To work with the CameraCaptureTask, first you need to add the namespace:


Then define a global variable:


In the constructor of the page, you need to instantiate a CameraCaptureTask and attach a completed event handler.


Next you need to show the camera to the user. You can call the Show function anywhere as per your business requirement however I am calling it on the click event of a button as below:


Now in the completed event of the CameraCaptureTask we need to save the image in the Media Library. To work with the Medialibrary, you need to add a reference of Microsoft.Xna.Framework. After adding the reference, add the following namespace:


In the completed event of CameraCaptureTask, make an instance of the MediaLibrary and call the SavePicture method as below:


As you see, the SavePicture function takes two input parameters. It takes the Name of the picture as one input parameter and a picture stream as another. In this example we are saving the picture taken from the camera. You may also save a picture downloaded from services as a stream.

For your reference, the full source code is given below:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;
using Microsoft.Xna.Framework.Media;
namespace PhoneApp17
    public partial class MainPage : PhoneApplicationPage
        // Constructor
        CameraCaptureTask cameraTask; 
        public MainPage()
            cameraTask = new CameraCaptureTask();
            cameraTask.Completed += new EventHandler<PhotoResult>(cameraTask_Completed);
        void cameraTask_Completed(object sender, PhotoResult e)
            if (e.TaskResult == TaskResult.OK)
                MediaLibrary medialibrary = new MediaLibrary();
                medialibrary.SavePicture("givenameofimage", e.ChosenPhoto);
        private void btnShowCamera_Click(object sender, RoutedEventArgs e)

In this way you can save a picture to the Media Library. I hope this article is useful. Thanks for reading.

Article Extensions
Contents added by jamal alyosufi on May 22, 2013
Dhananjay Kumar

Dhananjay kumar is an independent trainer, a consultant and a programmer from India. He has mentored more than 1000 professionals and known for his unique way of teaching. He has been part of the multiple projects for bi... Read more

Personal Blog: