Как да запазя платно като файл с изображение в WP приложение за библиотека с картини с HTML5?

Сега в моето приложение WP 8.1, използващо HTML5/CSS/Js, мога да нарисувам платно. Бих искал да запазя това платно като jpg файл в телефона си, като canvas.toDataURL() или друг подобен начин.

И така, как мога да го направя?
Благодаря за прочита.


person Thanhtu150    schedule 18.04.2015    source източник
comment
Мисля, че това е невъзможно поради съображения за сигурност.   -  person hindmost    schedule 18.04.2015
comment
може би този отговор може да помогне stackoverflow.com/a/12230195/1861097?   -  person Johncze    schedule 18.04.2015
comment
Изясних въпроса.   -  person Beri    schedule 21.04.2015


Отговори (1)


Можете да използвате нещо подобно:

 function(canvas,imgfilename ) {
      var fileStream, imgData;
      var Imaging = Windows.Graphics.Imaging;
      var localFolder = Windows.Storage.ApplicationData.current.localFolder;
      localFolder.createFileAsync(imgfilename, Windows.Storage.CreationCollisionOption.replaceExisting).then(function(file) {
           return file.openAsync(Windows.Storage.FileAccessMode.readWrite);
      }).then(function(stream) {
           fileStream = stream;
           var ctx = canvas.getContext('2d');
           imgData = ctx.getImageData(0, 0, ctrl.canvas.width, ctrl.canvas.height);
           return Imaging.BitmapEncoder.createAsync(Imaging.BitmapEncoder.jpegEncoderId, stream);
      }).then(function(encoder) {
           encoder.setPixelData(Imaging.BitmapPixelFormat.rgba8, Imaging.BitmapAlphaMode.straight, canvas.width, canvas.height, 96, 96, new Uint8Array(imgData.data));
           return encoder.flushAsync();
      }).done(function() {
           fileStream.close();
      }, function() {});
 }
person Mehdi Lahlou    schedule 18.04.2015
comment
Не искате var пред imgData на ред 10, тъй като искате променливата imgData от външния обхват (а не нова, обхваната от вътрешната функция). Освен това декларирането на множество променливи на един ред е лоша практика, не го правете. - person Brandon Paddock; 19.04.2015