2014-06-11 2 views
1

질문 웹 뷰에서 작성된 standart 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로 문자열을 잡기 위해 이벤트 리스너를 구현

....하지만 그것은 단지 내가 시도 파일이 아닌 이미지 } 많은 일반 텍스트로 기록합니다 당신은 장치에 이미지를 저장하려는 경우 ---> 버퍼가 ---> 파일/base64decode.toString이 ....

답변

1

, 당신은 시도 할 수 toImage/BLOB :

의이 작업을 수행 할 varients
Titanium.Media.saveToPhotoGallery(imageBlob); 

여기는 documentation입니다.

관련 문제