模糊图像处理网页代码
时间: 2024-10-14 11:05:11 浏览: 21
JavaScript实现的图像模糊算法代码分享
模糊图像处理通常是为了在网页上实现一些特效,比如增加艺术感、保护隐私或弱化细节。这通常通过JavaScript库和HTML5 canvas API来实现。以下是一个简单的示例,展示如何在浏览器端对图片进行模糊处理:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>模糊图像处理</title>
<style>
#blur-image {
display: block;
margin: auto;
}
</style>
</head>
<body>
<img id="blur-image" src="your_image_url" alt="Original Image">
<button onclick="applyBlur()">应用模糊</button>
<script>
function applyBlur() {
var img = document.getElementById('blur-image');
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
// 设置canvas大小等于图片大小
canvas.width = img.width;
canvas.height = img.height;
// 将图片绘制到canvas上并获取模糊后的图像
ctx.drawImage(img, 0, 0);
var blurredCanvas = ctx.getImageData(0, 0, canvas.width, canvas.height);
// 使用高斯滤波或其他模糊算法
var data = blurredCanvas.data;
var kernelSize = 5; // 可调整模糊程度
for (var i = 0; i < data.length; i += 4) {
var r = data[i], g = data[i + 1], b = data[i + 2];
var avg = (r + g + b) / 3;
for (var j = -kernelSize / 2; j <= kernelSize / 2; ++j) {
for (var k = -kernelSize / 2; k <= kernelSize / 2; ++k) {
var x = i % canvas.width + j;
var y = Math.floor(i / canvas.width) + k;
if (x >= 0 && x < canvas.width && y >= 0 && y < canvas.height) {
data[i] = (data[x] * ((kernelSize * kernelSize) - 1)) + avg * kernelSize;
data[i + 1] = (data[x + 1] * ((kernelSize * kernelSize) - 1)) + avg * kernelSize;
data[i + 2] = (data[x + 2] * ((kernelSize * kernelSize) - 1)) + avg * kernelSize;
}
}
}
}
// 将模糊后的数据放回canvas
ctx.putImageData(blurredCanvas, 0, 0);
// 更新显示的图像
img.src = canvas.toDataURL();
}
</script>
</body>
</html>
```
请注意,这个例子使用了简单的平均模糊算法,实际效果可能并不理想。你可以尝试使用更复杂的模糊库如`picle.js`等。
阅读全文