2012-05-02 5 views
3

navigator.cameraオブジェクトを使用して画像をキャプチャし、imgタグにプッシュしようとしています。私はデモは、このようなPhoneGapのドキュメントに言ってやっている:私はこれを行うとphonegapカメラが画像を読み込みません<img>タグ

if(navigator.camera) { 
    navigator.camera.getPicture(function(imageData){ 
     var $image = document.getElementById('imageForTask'); 
     image.src = "data:image/jpeg;base64," + imageData; 
     console.log(imageData); 
     }, null, {sourceType:1, quality: 50});    
} else { 
    alert("Camera not supported on this device."); 
} 

は、私がimageForTaskで壊れたリンクを取得します。これはソースが言うことです:data:image/jpeg;base64,content://media/external/images/media/325。なぜこれがうまくいかないのか誰も知っていますか?私はしばらくこのことに取り組んできました。ありがとう!

答えて

4

デフォルトのdestinationTypeがDATA_URLからFILE_URIに変更されました。あなたはオプションを追加した場合:あなたが画像を取得するために渡すオプションに

destinationType : Camera.DestinationType.DATA_URL 

をあなたは、base64エンコードされたデータとして設定することができるようになります。

http://docs.phonegap.com/en/1.6.1/cordova_camera_camera.md.html#cameraOptions_options

+0

ああ、これはトリックでした!ありがとう。 – gabaum10

0

content://media/external/images/media/325 -Geoff

は画像ではなく、その実際のバイナリデータへのパスです。ファイルシステムAPIを使用してファイルの内容を取得し、base64でエンコードして使用する必要があります。

+0

Ahhh参照してください。それは文字通りドキュメントにあったコードでした... – gabaum10

+0

これを使用する方法の例がありますか?私はそれが将来の参考のためにどのように行われているのか見たいと思います。 – gabaum10

+0

私は 'content:// media/external/images/media/325'を' 'タグに貼り付けたいと思います。どうしてそんなことができないのですか?同様のプロセスがクロムとアイオスシミュレータで機能します。 –