在页面加载时将图像徽标存储在本地存储中 - AngularJS

时间:2017-05-31 11:32:45

标签: angularjs

当页面加载到angularJS中时,如何将图像徽标存储在本地存储中。

angular.module('app', [
    'ngStorage'
  ]).

  controller('Ctrl', function(
    $scope,
    $localStorage
  ){
    // here I need to store image
    });
  });

3 个答案:

答案 0 :(得分:2)

试试这个

  controller('Ctrl', ['$localStorageProvider', function(
    $scope,
    $localStorageProvider
  ){
    $http.get("http://someurl.com/someimagepath")
         .then(function(response){          
          $scope.myImage = response.data;
          $scope.myImage = window.btoa($scope.myImage); // store it as base64 format
          $localStorageProvider.set('MyImage', $scope.myImage);
         });
    });
  });

一样使用它
<img ng-src="data:image/JPEG;base64,{{myImage}}">

答案 1 :(得分:1)

我们无法将图片直接保存到本地存储空间。我们需要将它隐藏到base64然后保存到本地存储

这是演示:如何将转换图像保存到base 64然后将其保存到本地存储 http://jsfiddle.net/8V9w6/

&#13;
&#13;
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

      // Only process image files.
      if (!f.type.match('image.*')) {
        continue;
      }

      var reader = new FileReader();

      // Closure to capture the file information.
      reader.onload = (function(theFile) {
        return function(e) {
          // Render thumbnail.
          var span = document.createElement('span');
          span.innerHTML = ['<img class="thumb" src="', e.target.result,
                            '" title="', escape(theFile.name), '"/>'].join('');
            
          document.getElementById('list').insertBefore(span, null);
          localStorage.setItem('img', e.target.result);
        };
      })(f);

      // Read in the image file as a data URL.
      reader.readAsDataURL(f);
    }
  }

  document.getElementById('files').addEventListener('change', handleFileSelect, false);


  if(localStorage.img) { 

         var span = document.createElement('span');
          span.innerHTML += ['<img class="thumb" src="', localStorage.img,
                            '" title="test"/>'].join('');

          document.getElementById('list').insertBefore(span, null);
    
    }
&#13;
  .thumb {
    height: 75px;
    border: 1px solid #000;
    margin: 10px 5px 0 0;
  }
&#13;
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以将图片转换为base64并将其存储在localstorage

<canvas id="myCanvas" />

在html文件中创建一个元素

   var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    var img = document.getElementById("preview");
    ctx.drawImage(img, 10, 10);
    $localStorage.logo = c.toDataURL()
    alert(c.toDataURL());