画像をグレースケールに変換する JavaScript + canvas 【画像処理】
2019-04-074 min read
目次
概要
JavaScriptで画像をグレースケールに変換するサンプルコードの紹介。
グレースケール変換式
ここではグレースケール画像変換式は次のように定義しています。
Y = 0.2126 * R + 0.7152 * G + 0.0722 * B
デモ
ここからデモを試すことができます。
https://s-yoshiki.github.io/Gasyori100knockJS/#/questions/ans2
変換後の画像は次のようになります。
サンプルソース
const canvas = document.getElementById('canvas');
let image = new Image();
image.src = './path/to/image.png';
let ctx = canvas.getContext('2d');
ctx.drawImage(image, 0, 0, image.width, image.height);
let src = ctx.getImageData(0, 0, image.width, image.height);
let dst = ctx.createImageData(image.width, image.height);
for (let i = 0; i < src.data.length; i += 4) {
let y = 0.2126 * src.data[i] + 0.7152 * src.data[i + 1]
+ 0.0722 * src.data[i + 2];
y = parseInt(y, 10);
dst.data[i] = y;
dst.data[i + 1] = y;
dst.data[i + 2] = y;
dst.data[i + 3] = src.data[i + 3];
}
ctx.putImageData(dst, 0, 0);
ソースはgithubにもあげてあります
https://github.com/s-yoshiki/Gasyori100knockJS/blob/master/src/components/questions/answers/Ans2.js
Recommends
New Posts
Hot posts!
Date
Tags
(110)
(54)
(54)
(47)
(45)
(36)
(30)
(29)
(24)
(24)
(22)
(21)
(21)
(20)
(19)
(17)
(16)
(16)
(15)
(14)
(12)
(12)
(12)
(12)
(12)
(12)
(11)
(10)
(10)
(10)
(10)
(10)
(9)
(9)
(8)
(8)
(8)
(8)
(7)
(7)
(6)
(6)
(6)
(6)
(6)
(5)
(5)
(5)
(5)
(4)
Author