2017-11-28 20 views
1

Dropbox lepton NodeJS Packageを使用して画像を圧縮しようとしています。しかし、NodeJS Express Appで以下のコードを実行すると、以下のエラーが発生します。Dropbox Lepton Node JSパッケージを使用して画像を圧縮する方法

誰かがこのエラーを解決するにはどうすればよいですか?

ここには、実行しようとしているコードがあります。以下は

var myLepton     = require('node-lepton'); 

    myLepton.compress('http://www.barth.com/hires/N10_JB07006.jpg', 
    { 
    unjailed: false, 
    }, 
    function(err, data){ 
    if(err) throw err; 
    console.log("data : "+JSON.stringify(data, null, 4)); 
    console.log('Successfully compressed image'); 
    }); 

私が手エラーです:

Error: Command failed: lepton -memory=1024M -threadmemory=128M http://www.barth.com/hires/N10_JB07006.jpg 51di81xl3g.lep 
/bin/sh: lepton: command not found 

    at ChildProcess.exithandler (child_process.js:275:12) 
    at emitTwo (events.js:126:13) 
    at ChildProcess.emit (events.js:214:7) 
    at maybeClose (internal/child_process.js:925:16) 
    at Socket.stream.socket.on (internal/child_process.js:346:11) 
    at emitOne (events.js:116:13) 
    at Socket.emit (events.js:211:7) 
    at Pipe._handle.close [as _onclose] (net.js:554:12) 
+0

あなたはNPMがノード・レプトンをインストール--save' 'を実行しましたか?はい、私はコマンドを実行しなかったため、パッケージがpackage.json' 'に示されている – alfasin

+0

(変更はpackage.jsonで見えるはずです)、私は!!それが動作node_modules' – kurrodu

答えて

1

私は同じ問題を持っていた、(手動レプトンをインストールする(instructions hereを参照)、$PATHに、インストールのディレクトリを追加することによってそれを解決Linux/Macまたはそれに相当するWindowsの場合)。

このコードには別の問題があります。ファイルとしてURLを提供できると仮定していますが、圧縮はマシン上にローカルに保存されているファイルへのパスを受け入れます。

あなたはレプトンがローカルにこのファイルをダウンロードして、正しくインストールされていることを確認することができます、

基本的に
lepton -memory=1024M -threadmemory=128M file.jpg 51di81xl3g.lep 

that's what node-lepton is doingを:)

あなたがする必要があります

curl http://www.barth.com/hires/N10_JB07006.jpg > file.jpg 

とコマンドラインから実行します51di81xl3g.lepに保存されたjpgの圧縮されたバージョンを参照してください。

この作業が完了したら、コードを元に戻して、圧縮する前にロジックを追加してファイルをローカルにダウンロードしてください。

例:

var lepton = require('node-lepton'); 
var http = require('http'); 
var fs = require('fs'); 

var file = fs.createWriteStream("file.jpg"); 
console.log("downloading ..."); 
var request = http.get("http://www.barth.com/hires/N10_JB07006.jpg", function(response) { 
    response.on('data', function(chunk){ 
      file.write(chunk); 
     }) 
     .on('end', function(){ 
      file.end(); 
      console.log("file was downloaded successfully!"); 

      // compress 
      console.log("compressing..."); 
      lepton.compress('file.jpg', 
      { 
       unjailed: false, 
      }, 
      function(err, data){ 
       if(err) throw err; 
       // save the compressed data into a new file 
       fs.writeFile('compressed.z', data, function(err) { 
        if(err) { 
         return console.log(err); 
        } 
        console.log("The file was saved!"); 
       }); 
      }); 
     }); 
}); 
+0

'でそれを見ることができ、ありがとうございました。ファイルをcompressed.zという名前で保存したのはなぜですか。これでファイルサイズが縮小されますか、圧縮された.zファイルをどのように解凍できますか? – kurrodu

+0

@kurrodu私はちょうどデモのためにその名前を付けました - あなたは好きなものを選ぶことができます。解凍するには 'lepton.decompress'を呼び出すべきです。ここのコード例を参照してください:https://github.com/whitef0x0/node-lepton – alfasin

+1

確かに、あなたはとても役に立ちました。再度、感謝します。 – kurrodu

関連する問題