js 图像处理

图片处理

jpg像素应该是rpg、channel值,其他图片应该也是这样的,图片存储为图片在读取

<html>
	<head>
		<title>Sample</title>
	</head>
	<body>
		<div><span>R:</span><input type="text" id="R" value="200"></div>
		<div><span>P:</span><input type="text" id="P" value="200"></div>
		<div><span>G:</span><input type="text" id="G" value="200"></div>
		<input type="submit" value="更新" id="refresh">
		<div><canvas id="demo"></canvas></div>
	</body>
	<script src="../../dst/core.js" type="text/javascript"></script>
	<script>
		//画布
		var demo = document.getElementById("demo"),
			canvas = demo.getContext("2d", {
				willReadFrequently: true
			});
		//img标签指定图片
		var img = document.createElement("img");
		img.src = "0.jpg";
		img.setAttribute("crossorigin", "anonymous")
		//首次图片加载
		var imageData;
		img.onload = function() {
			//画布要先drawImage上后才可读取,放在onload可预览
			refresh(200, 200, 200)
		};
		//输入框和按钮事件注册
		var Relement = document.getElementById("R")
		Relement.onkeydown = function(event) {
			keyDown(event, 0)
		}
		var Pelement = document.getElementById("P")
		Pelement.onkeydown = function(event) {
			keyDown(event, 1)
		}
		var Gelement = document.getElementById("G")
		Gelement.onkeydown = function(event) {
			keyDown(event, 2)
		}

		var refreshElement = document.getElementById("refresh")
		refreshElement.onclick = function() {
			console.log(Relement.value, Pelement.value, Gelement.value)
			refresh(Relement.value, Pelement.value, Gelement.value)
		}

		function keyDown(event, index) {
			var e = event || window.event || arguments.callee.caller.arguments[0];
			//只有上下按键触发
			if (e.keyCode == 40) {
				if (index == 0) {
					Relement.value--
				}
				if (index == 1) {
					Pelement.value--
				}
				if (index == 2) {
					Gelement.value--
				}
				console.log(Relement.value, Pelement.value, Gelement.value)
				refresh(Relement.value, Pelement.value, Gelement.value)
			}
			if (e.keyCode == 38) {
				if (index == 0) {
					Relement.value++
				}
				if (index == 1) {
					Pelement.value++
				}
				if (index == 2) {
					Gelement.value++
				}
				console.log(Relement.value, Pelement.value, Gelement.value)
				refresh(Relement.value, Pelement.value, Gelement.value)
			}
		}
		//指定RPG刷新画布
		function refresh(R, P, G) {
			canvas.drawImage(img, 0, 0);
			imageData = canvas.getImageData(0, 0, img.width, img.height)
			for (var i = 0; i < imageData.height; i++) {
				for (var j = 0; j < imageData.width; j++) {
					var px = (i * imageData.width + j) * 4
					if (imageData.data[px + 0] >= R && imageData.data[px + 1] >= P && imageData.data[px + 2] >=
						G) {

					} else {
						imageData.data[px + 0] = imageData.data[px + 1] = imageData.data[px + 2] = 0;
						imageData.data[px + 3] = 255
					}
				}
			}
			canvas.putImageData(imageData, 0, 0);
		}
	</script>
</html>

加载代码,由于img没有onload,所以image.width一直是0

function loadImage1(imageList) {
			var item;
			for (var i = 0; i < imageList.length; i++) {
				item = imageList[i]
				if (i == 12) {
					prefix = 'sys/'
					sw = sys_point.sw
					sh = sys_point.sh
				}
				if (i == 17) {
					prefix = 'time/'
					sw = date.sw
					sh = date.sh
				}
				if (i == 27) {
					prefix = 'time/'
					sw = time.sw
					sh = time.sh
				}
				var image = new Image();
				image.src = prefix + item + suffix
				sw += image.width + (prefix == 'time/' ? 3 : 0)
				image.onload = drawCanvasImage(context, image, sw, sh)
			}
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenxuezhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值