画像の平均色をCanvasで取得
1127 ワード
Windows 8、FireFox OSではこのような効果があり、重要ではありませんが、システム全体を調和させて面白くすることができます.
これが私たちが今日お話しする主な内容で、画像の平均色です.
まず、canvasのgetImageData関数を使用して、すべてのピクセルのデータを取得できます.
その後、すべてのrgb 3値をそれぞれ平均値にすればよい.
実装:
これで、私たちが望んでいる値を得ることができます.
これが私たちが今日お話しする主な内容で、画像の平均色です.
まず、canvasのgetImageData関数を使用して、すべてのピクセルのデータを取得できます.
その後、すべてのrgb 3値をそれぞれ平均値にすればよい.
実装:
function getImageColor(canvas, img) {
canvas.width = img.width;
canvas.height = img.height;
var context = canvas.getContext("2d");
context.drawImage(img, 0, 0);
//
var data = context.getImageData(0, 0, img.width, img.height).data;
//
for (var row = 0; row < img.height; row++) {
for (var col = 0; col < img.width; col++) {
r += data[((img.width * row) + col) * 4];
g += data[((img.width * row) + col) * 4 + 1];
b += data[((img.width * row) + col) * 4 + 2];
}
}
//
r /= (img.width * img.height);
g /= (img.width * img.height);
b /= (img.width * img.height);
//
r = Math.round(r);
g = Math.round(g);
b = Math.round(b);
return "rgb(" + r + "," + g + "," + b + ")";
}
これで、私たちが望んでいる値を得ることができます.