假设我有一个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?
答案 0 :(得分:2)
This post on the React Native issue tracker有答案:
要使用ImageStore.getBase64ForTag
,您首先必须将图像放入ImageStore,这只能通过首先使用ImageEditor.cropImage
函数来完成。
这可能看起来很麻烦,而且确实如此,但这是因为我们通常不鼓励将图像转换为base64数据。如果您可以解释您正在尝试做什么,可能会有更好的方法,或者我们可以为它创建更好的API。