画像からバイナリデータを取得したい。したがって、キャンバスに配置し、getImageDate メソッドで取得する必要があります。ただし、ソース PNG イメージのサイズと抽出されたキャンバス イメージのサイズを比較すると、それらは異なります。
var img = new Image();
img.onload = function() {
var canvas = document.getElementById("c");
canvas.width = this.width;
canvas.height = this.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
//get image
var canvasimg = ctx.getImageData(0, 0, this.width, this.height);
alert("binlength: " + canvasimg.data.length);
};
img.src = "images/example.PNG";
ここに例をアップロードしました: http://jsfiddle.net/wLb3q/4/
この動作は、JavaScript だけでなく、Firefox のコンテキストメニュー (キャンバスを右クリックして画像を保存) を介して行う場合にも発生します。取得された画像は、元の画像よりもかなり小さいです。
よろしくお願いします!