Phonegap:将base64图像保存到图库

问题描述 投票:0回答:3

我只想保存图像base64并在图库中打开它。我不想从图库中获取图片或拍照。

<img src="base64" />
<button>Save</button>

phonegap + angularjs

谢谢!

cordova phonegap-plugins
3个回答
2
投票

解决方案:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {

  var fileTransfer = new FileTransfer();
  var uri = encodeURI("http://www.example.com/image");
  var path = fileSystem.root.toURL() + "appName/example.jpg";

  fileTransfer.download(
    uri,
    path,
    function(entry) {
      refreshMedia.refresh(path); // Refresh the image gallery
    },
    function(error) {
      console.log(error.source);
      console.log(error.target);
      console.log(error.code);
    },
    false,
    {
      headers: {
        "Authorization": "dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
      }
    }
  );

});

我需要创建一个插件来刷新图库,因为当您将图像保存在android设备上时,此图像不会出现在图库中。此插件更新图片库。

refreshMedia.refresh(path); // Refresh the image gallery

插件:https://github.com/guinatal/refreshgallery


0
投票

CLI:cordova插件添加org.apache.cordova.camera

  document.addEventListener("deviceready",onDeviceReady,false);

    var pictureSource;   // picture source
    var destinationType; // sets the format of returned value
    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;
    }

    $(document).on('click','#pic_parse',function(){
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50,
        encodingType: Camera.EncodingType.PNG,
        destinationType: destinationType.DATA_URL,
        sourceType: pictureSource.SAVEDPHOTOALBUM });
    });

    function onPhotoDataSuccess(imageData) { 
        alert(imageData);//here, imageDate is base64.Now, you can save base64.
    }

function onFail(message) {
  alert('Failed because: ' + message);
}

希望,对您有帮助!


0
投票

要在cordova上下载base64图像,请使用此插件将图像扫描到图库中。

https://github.com/agomezmoron/cordova-save-image-gallery

function onDeviceReady() {
    var params = {data: base64String, prefix: 'myPrefix_', format: 'JPG', quality: 80, mediaScanner: true};
    window.imageSaver.saveBase64Image(params,
        function (filePath) {
          console.log('File saved on ' + filePath);
        },
        function (msg) {
          console.error(msg);
        }
      );
}
© www.soinside.com 2019 - 2024. All rights reserved.