2016-09-22 6 views
1

npmパッケージclarifaiを使用してClarifai APIにアクセスしています。私はgetTagsByImageBytes機能を使用する必要がありますが、私はこの答えを得る:Clarifai APIのデコード中にbase64(nodejs)

{「STATUS_CODE」:「ALL_ERROR」、「のStatus_msg」:「。要求のすべての画像は、画像あたりのエラーメッセージを確認してください失敗しました」 "status_code": "CLIENT_ERROR"、 "status_msg": "データ読み込みに失敗しました。詳細は結果を参照してください。"、 "local_id"、 "meta":{}、 "results":[{"docid":2.0371991595148082e + 38、 "status_code" : ""、 "result":{"エラー": "データが壊れているか、データ型がサポートされていないため、データ0は有効ではありません。"}、 "docid_str": "99430754f1cd37d149b992bc635f685f"}]}

画像のエンコードに問題があります。

const fs = require('fs'); 
let path = 'path/to/any/image'; 
let buffers = []; 
let bytes; 
// creating a reading stream 
const readable = fs.createReadStream(path); 

// the read content is added to the buffer array 
readable.on('data', (chunk) => { 
    buffers.push(chunk); 
}); 

// all the data read are joined in a single buffer 
readable.on('end',() => { 
    bytes = Buffer.from(buffers.join(), 'binary').toString('base64'); 
    // here the goal is to have a valid base64 encoded image 
    console.log(bytes); 
}); 

私も失敗しJSON.stringifyを送信しようとしていると.toString:ここで私は(pathがローカル私のイメージへのパスとbytes私はClarifaiに送信する変数である)、これまでそれを取得しようとする方法でありますバージョン。私は期待されたバイト配列の私の理解の中で何かを逃したと思う、誰かが私を助けるのですか?

ありがとうございました!

更新:上記のコードとエラーメッセージを変更して、最後の試行を更新しました。

+0

私は専門家ではありませんが、問題を再現するのに十分な情報を提供していないようです。もしそうなら、可能ならばこれを "修正"してください。 – YakovL

+0

ありがとうございました。私はコードを編集しました。単に.jsファイルに貼り付け、ノードを使って起動します。 :) – nakurai

答えて

0

私は解決策を持っています。私はこの答えからコードを使用する場合には、実際に働いている:NodeJS base64 image encoding/decoding not quite working

My機能となっています:私はそれが他の人を助けることを願って

let path = 'my/path/to/image'; 
fs.readFile(path, function(err, original_data){ 
    if(err){ 
     return; 
    } 
    else{ 
     // this variable contains the correctly encoded image. Just use it as it is in the Clarifai API 
     var base64Image = original_data.toString('base64'); 
     console.log(base64Image); 
    } 
}); 

。楽しむ!

関連する問題