From 03d5e38520e1779b807af95187782a27155372c8 Mon Sep 17 00:00:00 2001 From: PliablePixels Date: Wed, 15 Jul 2015 21:02:53 -0400 Subject: added plugin for save to camera roll --- .../src/wp8/Canvas2ImagePlugin.cs | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 plugins/org.devgeeks.Canvas2ImagePlugin/src/wp8/Canvas2ImagePlugin.cs (limited to 'plugins/org.devgeeks.Canvas2ImagePlugin/src/wp8/Canvas2ImagePlugin.cs') diff --git a/plugins/org.devgeeks.Canvas2ImagePlugin/src/wp8/Canvas2ImagePlugin.cs b/plugins/org.devgeeks.Canvas2ImagePlugin/src/wp8/Canvas2ImagePlugin.cs new file mode 100644 index 00000000..6376348c --- /dev/null +++ b/plugins/org.devgeeks.Canvas2ImagePlugin/src/wp8/Canvas2ImagePlugin.cs @@ -0,0 +1,49 @@ +using Microsoft.Xna.Framework.Media; +using System; +using System.IO; +using System.Text; +using WPCordovaClassLib.Cordova; +using WPCordovaClassLib.Cordova.Commands; +using WPCordovaClassLib.Cordova.JSON; + +public class Canvas2ImagePlugin : BaseCommand +{ + public Canvas2ImagePlugin() + { + } + + public void saveImageDataToLibrary(string jsonArgs) + { + try + { + var options = JsonHelper.Deserialize(jsonArgs); + + string imageData = options[0]; + byte[] imageBytes = Convert.FromBase64String(imageData); + + using (var imageStream = new MemoryStream(imageBytes)) + { + imageStream.Seek(0, SeekOrigin.Begin); + + string fileName = String.Format("c2i_{0:yyyyMMdd_HHmmss}", DateTime.Now); + var library = new MediaLibrary(); + var picture = library.SavePicture(fileName, imageStream); + + if (picture.Name.Contains(fileName)) + { + DispatchCommandResult(new PluginResult(PluginResult.Status.OK, + "Image saved: " + picture.Name)); + } + else + { + DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, + "Failed to save image: " + picture.Name)); + } + } + } + catch (Exception ex) + { + DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, ex.Message)); + } + } +} -- cgit v1.2.3