2017-03-25 20 views
0

イメージのすべてのrgbaデータを抽出する方法を探しています。イメージからrgbaデータを抽出する

私はモジュールキャンバスからgetImageData()メソッドを見つけましたが、私の場合は10x10のため、ゼロの配列しか返しません。以下はデータの抽出方法です。私は私の最後のコメントで述べたように任意のアイデアは、あなた

fs.readFile(__dirname + '/image.jpg', function(err, data) { 
    if (err) throw err; 
    var img = new Canvas(10, 10) 
    img.src = data; 
    var c = img.getContext('2d'); 
    var imgData = c.getImageData(0, 0, img.width, img.height); 
}) 
+0

イメージの「すべてのrgbaデータ」と言うとき、正確に何を求めていますか?あなたはキャンバスで何をしようとしていますか?おそらくコンテキストの方が簡単でしょう:あなたがいったんrgbaデータを持っていたら、何をする予定ですか? –

+0

私はrgbデータを次々に配列に格納しています。rgbデータが必要な場合と同じ方法で、データを取得するためにキャンバスを使用しています。 – worer

+0

10x10でgetImageDataを呼び出す400要素配列を取得します。それはRGBとAです。私は何が欠けていますか?また、あなたがノードにいる場合、あなたは電子かnwjsを使っていますか、あるいはどのようにCanvasを取得していますか? –

答えて

1

に感謝し、私は根本問題がfs.readFileキャンバスsrc属性のために役に立たないしている、あなたの生データを返していることであると信じています。私は以下がうまくいくと思うが、私はそれをテストしていないと告白する。

fs.readFile(__dirname + '/image.jpg', function(err, data) { 
    if (err) throw err; 
    var img = new Canvas(10, 10) 
    img.src = 'data:image/jpeg;base64,'+ data.toString('base64'); 
    var c = img.getContext('2d'); 
    var imgData = c.getImageData(0, 0, img.width, img.height); 
}) 
+1

ありがとう、本当に助けてくれて本当に素敵な男のように聞こえる。それはまだ正確には働いていないが、私はそれがちょうどいくつかの調整が必要だと思う。 – worer

+0

まあ、「いい男」のラベルを議論する人もいるかもしれませんが、悪い気持ちで私を捕まえるときだけです!私が言ったように、明日もチェックインします。私に起こる1つのことは、キャンバスがそれ自身よりも大きなsrcイメージをどのように扱うのかわかりません。私は明日について読むためにそれはいくつかの楽しいJavaScriptのトリビアになることができます。 –

+1

さて、私はそれを見て、良い夜:) – worer

関連する問題