1
問題是如何將從webview寫入的標準base64類型的圖像數據轉換爲外部存儲器上的文件(在我的情況下是jpeg)?將base64編碼的圖像寫入鈦文件
Ti.App.addEventListener('app:save_op', function(d) { //listens events fired from js in webview
var base64img = d.url;
var imageBlob = Ti.Utils.base64decode(base64img);
var imageView = Titanium.UI.createImageView({
image:imageBlob,
// top:20,
// width:300,
// height:100
});
self.add(imageView);
if (Ti.Filesystem.isExternalStoragePresent()) {
// var theMap = win1.toImage();
// var file = Titanium.Filesystem.createTempFile(Titanium.Filesystem.resourcesDirectory);
// Ti.API.info('size = ' + file.size);
// file.write(theMap);
fname = new Date().getTime() + '_' + 'out.jpg';
fname2 = new Date().getTime() + '_' + 'o.jpg';
var f = Ti.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, fname);
var f2 =Ti.Filesystem.getFile(Ti.Filesystem.externalStorageDirectory, fname2);
// f2 = f.read();
// f2.write();
f.write(d.url);
//
//f.write(imageBlob);
// var img = new Image();
// img.src = imageBlob;
f.write(imageView.image);
alert("nativePath = " + f.nativePath);
我實現了事件偵聽器可以捕捉到在網頁視圖,然後fireevent JPEG文件的base64字符串....但它只是寫他們爲明文的文件,而不是圖像 } 我已經嘗試了很多的一些變體要做到這一點:toImage/BLOB --->緩衝區--->文件/ base64decode.toString ....