2016-07-19 13 views
1

からのイメージのために私はネイティブのカメラからのキャプチャ後の画像をuplaodingていた機能、に取り組んでいます。ここでは、画像のサイズに制限があります。だから、イメージサイズをMBで計算する必要があります。はバイト単位で画像のサイズを計算する必要がある - PhoneGapのカメラ

Camera.getPicture(gotPicture, cameraError, { 
           quality: 50, 
           allowEdit: true, 
           targetWidth: 200, 
           targetHeight: 200, 
           destinationType: Camera.DestinationType.DATA_URL 
          }); 
camera 
         .getPicture(
          gotPicture, 
          cameraError, { 
           quality: 100, 
           allowEdit: true, 
           targetWidth: 200, 
           targetHeight: 200, 
           sourceType: Camera.PictureSourceType.PHOTOLIBRARY, 
           destinationType: Camera.DestinationType.DATA_URL 
          }); 

私はそれがファイルとして保存されている提案の多くを見つけましたが、ここで私は、DATA URI(私が処理するためにBase64イメージを渡す必要があるとして)として、それを受けています。画像の実際のサイズを計算する際に

ことができる人の助けがPHOTO_GALLERYから参照/クリック。

私はPhoneGapのAPIを呼び出すいたときに、大きさのいずれかの圧縮がありますように、1つの以上のクエリは、APIレベルで事前に

おかげ行われてきました!あなたは、次のように画像のサイズやBase64で両方のデータを取得することができます

+0

私はこれまで、全体的な答えはないと思います。サイズはデバイスのカメラによって異なります。ですから、私はむしろ、所与の画像を必要なサイズに圧縮する方法を見つけようと、そこにあるすべての機器の品質を正しく取得しようとしています。私はそれがサイズ表示され、2.5メガバイトの画像を選択しています。ここ – Phonolog

答えて

1

function capturePhoto() { 
 
    navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, 
 
    destinationType: Camera.DestinationType.FILE_URI, 
 
    saveToPhotoAlbum: true}); 
 
} 
 
function onPhotoDataSuccess(imageURI) { 
 
\t getSize(imageURI); 
 
} 
 
function onFail(message) { 
 
    alert('Failed'); 
 
} 
 
function getSize(fileUri) { 
 
    window.resolveLocalFileSystemURL(
 
      fileUri, 
 
      function(fileEntry){ 
 
     \t fileEntry.getMetadata(function(metadata){ 
 
     \t \t alert("size is"+metadata.size); 
 
     \t }, resOnError); 
 
     \t fileEntry.file(function(file) { 
 
    \t \t   var reader = new FileReader(); 
 
    \t \t   reader.onloadend = function(evt) { 
 
    \t \t    alert(evt.target.result); 
 
    \t \t   }; 
 
    \t \t   reader.readAsDataURL(file); 
 
    \t \t  }, resOnError); 
 
      }, 
 
      resOnError); 
 
} 
 
function resOnError(error) { 
 
\t alert("error"); 
 
    }

あなたはサイズの圧縮のためsourceType :Camera.PictureSourceType.PHOTOLIBRARY .ANDを設定することにより、フォトギャラリーのためにこれを行うことができ、私はあなたをお勧めしますgetPictureに低品質を設定します。

+0

、正しいされていない、88412:178908&Iは、サイズ8.9メガバイトの画像を選択するよ、大きさを示しています。上記のコードを使用しました。助けてください。 –

関連する問題