4

現在、Node.js gm graphicsMagic ラッパーを使用して個々のピクセルを取得する方法を見つけようとしています。私の全体的な最終目標は、画像のパーセンテージで上位 10 色を取得することです。私は自分の結果を得るいくつかの関数を書き込もうとしていますが、私の人生では、gmラッパーを使用してピクセル自体を取得する方法がわかりません。GraphicsMagick には GetPixels メソッドがあるようですが、それを呼び出すことができませんでした。どんな助けでも大歓迎です。

ありがとう!

4

1 に答える 1

7

画像の平均色を取得したかったので、次のスクリプトで解決しました。

gm(file).setFormat('ppm')
    .resize(1, 1)
    .toBuffer(function (err, buffer) {
        var color = "rgb(" + buffer.readUInt8(buffer.length - 3)
            + "," + buffer.readUInt8(buffer.length - 2)
            + "," + buffer.readUInt8(buffer.length - 1) + ")";
        // ...
    });

基本的に、画像をトリミングして ppm 形式に変換し、バッファからピクセルを読み取ることができます。まったく最適ではなく、より良い解決策があることを本当に願っていますが、私の場合はそれで十分でした.

編集:別のオプションは、Custom Argumentsを使用することです。

于 2014-04-17T13:36:43.273 に答える