0 Star 0 Fork 0

Pan/html5_canvas

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
5.6.1-像素化.html 1.89 KB
一键复制 编辑 原始数据 按行查看 历史
Pan 提交于 2019-10-15 14:46 . 图片像素处理
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<canvas id="canvas" width="400" height="400"></canvas>
<script src="initCanvas.js"></script>
<script>
var image = new Image()
image.src = 'a.jpg'
image.onload = function () {
context.drawImage(image, 0, 0, 100, 100, 0, 0, 400, 400)
var imagedata = context.getImageData(0, 0, canvas.width(), canvas.height())
var pixels = imagedata.data
context.clearRect(0, 0, canvas.width(), canvas.height())
var tilsCols = 10
var tilsRows = 10
var tilsWidth = imagedata.width / tilsCols
var tilsHeight = imagedata.height / tilsRows
for (var row = 0; row < tilsRows; row++) {
for (var col = 0; col < tilsCols; col++) {
//取每个马赛克的中心位置
var x = Math.floor(col * tilsWidth + tilsWidth / 2)
var y = Math.floor(row * tilsHeight + tilsHeight / 2)
//确定在数组中的位置
var pos = y * imagedata.height * 4 + x * 4
var r = pixels[pos]
var g = pixels[pos + 1]
var b = pixels[pos + 2]
context.fillStyle = 'rgb(' + r + ',' + g + ',' + b + ')'
// context.fillRect(x - tilsWidth / 2, y - tilsHeight / 2, tilsWidth, tilsHeight)
context.beginPath()
context.arc(x, y, tilsWidth / 2, 0, Math.PI * 2, false)
context.closePath()
context.fill()
}
}
}
</script>
</body>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/codingpan/html5_canvas.git
git@gitee.com:codingpan/html5_canvas.git
codingpan
html5_canvas
html5_canvas
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385