Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically take a screenshot on windows phone?

I need to take screenshots using Windows Phone. I don't want to take screenshots using the emulator and power+start button manually. Is there anything that can be done programmatically ?

like image 219
Ramesh Avatar asked Nov 29 '13 07:11

Ramesh


1 Answers

Here is the code:

private void ApplicationBarScreenshotButton_Click(object sender, EventArgs e)
{
    var fileName = String.Format("MyImage_{0:}.jpg", DateTime.Now.Ticks);
    WriteableBitmap bmpCurrentScreenImage = new WriteableBitmap((int)this.ActualWidth, (int)this.ActualHeight);
    bmpCurrentScreenImage.Render(LayoutRoot, new MatrixTransform());
    bmpCurrentScreenImage.Invalidate();
    SaveToMediaLibrary(bmpCurrentScreenImage, fileName, 100);
    MessageBox.Show("Captured image " + fileName + " Saved Sucessfully", "WP Capture Screen", MessageBoxButton.OK);

    currentFileName = fileName;
}

public void SaveToMediaLibrary(WriteableBitmap bitmap, string name, int quality)
{
    using (var stream = new MemoryStream())
    {
        // Save the picture to the Windows Phone media library.
        bitmap.SaveJpeg(stream, bitmap.PixelWidth, bitmap.PixelHeight, 0, quality);
        stream.Seek(0, SeekOrigin.Begin);
        new MediaLibrary().SavePicture(name, stream);
    }
}

When you click on the AppBar button it will take the screenshot and Save the picture to the Windows Phone media library

like image 73
Rashad Valliyengal Avatar answered Sep 20 '22 05:09

Rashad Valliyengal