ImageStore.getBase64ForTag期望的URI格式是什么?

时间:2017-06-21 23:09:26

标签: react-native expo

假设我有一个Image,例如来自Image Picker的图像,如下所示:

             <div id="tags">
                <span>php</span>
                <span>c++</span>
                <span>jquery</span>
                <input type="text" value="" placeholder="Add a tag" />
              </div>
<script>
$(function(){ // DOM ready    
  // ::: TAGS BOX    
  $("#tags input").on({
    focusout : function() {
      var txt= this.value.replace(/[^a-z0-9\+\-\.\#]/ig,''); // allowed characters
      if(txt) $("<span/>",{text:txt.toLowerCase(), insertBefore:this});
      this.value="";
    },
    keyup : function(ev) {
      // if: comma|enter|space (delimit more keyCodes with | pipe)
      if(/(188|13|32)/.test(ev.which)) $(this).focusout();
    }
  });
  $('#tags').on('click', 'span', function() {
    if(confirm("Remove "+ $(this).text() +"?")) $(this).remove();
  });

});
</script>

查看React Natives ImageStore(https://facebook.github.io/react-native/docs/imagestore.html)的文档,可以假设将该Image的URI传递给{ "height": 2848, "origURL": "assets-library://asset/asset.JPG?id=B84E8479-475C-4727-A4A4-B77AA9980897&ext=JPG", "cancelled": false, "width": 4288, "fileSize": 342120, "isVertical": false, "uri": "file:///Users/sepp/Library/Developer/CoreSimulator/Devices/998C81E0-5CC6-4A3E-90C2-A7C43060220C/data/Containers/Data/Application/53F9F372-37DD-4CD2-B5E2-0D984A064686/Library/Caches/%2540anonymous%252Fcleanguide-c5413b44-e71a-4958-80a6-25b9c9e5d7a5/ImagePicker/A1D3644A-516E-4D7C-911C-2AC120B229BB.jpg" } 应返回该Image的base64。

相反,它会产生错误无效的imageTag:file:/// Users / sepp / Library [...] (因可读性而缩短)。

所以我的问题是:ImageStore.getBase64ForTag期望什么样的URI?

1 个答案:

答案 0 :(得分:2)

This post on the React Native issue tracker有答案:

要使用ImageStore.getBase64ForTag,您首先必须将图像放入ImageStore,这只能通过首先使用ImageEditor.cropImage函数来完成。

  

这可能看起来很麻烦,而且确实如此,但这是因为我们通常不鼓励将图像转换为base64数据。如果您可以解释您正在尝试做什么,可能会有更好的方法,或者我们可以为它创建更好的API。