在JavaScript中给图片加滤镜,可以通过操作图像的像素数据来实现,常用的方法是使用HTML5的Canvas API。
基础概念:
优势:
类型:
应用场景:
示例代码(灰度滤镜):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片灰度滤镜示例</title>
</head>
<body>
<input type="file" id="imageInput">
<canvas id="canvas"></canvas>
<script>
const imageInput = document.getElementById('imageInput');
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
imageInput.addEventListener('change', function (e) {
const img = new Image();
img.src = URL.createObjectURL(e.target.files[0]);
img.onload = function () {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
const data = imageData.data;
for (let i = 0; i < data.length; i += 4) {
const avg = (data[i] + data[i + 1] + data[i + 2]) / 3;
data[i] = avg; // red
data[i + 1] = avg; // green
data[i + 2] = avg; // blue
}
ctx.putImageData(imageData, 0, 0);
}
});
</script>
</body>
</html>
可能遇到的问题及解决方法:
canvas.getContext
是否存在来判断。领取专属 10元无门槛券
手把手带您无忧上云