xxxxxxxxxx
35
// FilterImage (c) 2015, 2021 kouichi.matsuda@gmail.com
let img; // (1) 画像を管理する変数
let copy; // imgをコピーした画像
function preload() {
img = loadImage("sky.png"); // (2) 画像の読み込み
}
function setup() {
createCanvas(img.width * 2, img.height * 2); // (3) 画像と同じサイズのcanvasを用意する
copy = img.get(); // 元の画像を壊さないようにコピーする
}
function draw() {
image(copy, 0, 0); // (4) 画像を表示
}
function keyTyped() {
copy = img.get(); // 元の画像をコピーする
if (key === "i") { // キーに合わせてフィルタ処理する
copy.filter(INVERT); // 色の反転
} else if (key === "t") {
copy.filter(THRESHOLD, 0.5); // 2値化
} else if (key === "g") {
copy.filter(GRAY); // グレースケール化
} else if (key === "b") {
copy.filter(BLUR, 3); // 平滑化
} else if (key === "d") {
copy.filter(DILATE); // 膨張
} else if (key === "e") {
copy.filter(ERODE); // 収縮
} else if (key === "p") {
copy.filter(POSTERIZE, 3); // 階調変換
}
}