javascript - 获取本地镜像的高度、宽度和所有像素的rgb

标签 javascript html

我发现以下代码可以让用户从他的计算机加载图像。
https://jsfiddle.net/8Lw42kcv/

<input id="files" type="file">
<output id="list"></output>

function handleFileSelect(evt){
var files=evt.target.files
for(var i=0,f;f=files[i];i++){
var reader=new FileReader()
reader.onload=(function(theFile){
return function(e){
var span=document.createElement('span')
span.innerHTML=['<img class="thumb"src="',e.target.result,
'"title="',escape(theFile.name),'"/>'].join('')
document.getElementById('list').insertBefore(span,null)
}
})(f)
reader.readAsDataURL(f)
}
}
document.getElementById('files').addEventListener('change',handleFileSelect,false)

现在,我真正想要的不是显示图像,而是读取它的大小(高度和宽度)以及每个像素的 rgb(红、绿、蓝)值。

e.target.result = 转换为 Base 64 的图像的链接。

我如何alert()所选图像的高度、宽度以及像素 1,1 的红色、绿色和蓝色?

最佳答案

希望这对您有用。

function handleFileSelect(evt) {
	var files = evt.target.files
	for (var i = 0, f; f = files[i]; i++) {
		var reader = new FileReader()
		reader.onload = (function(theFile) {
			return function(e) {
			// var span = document.createElement('span')
			// span.innerHTML = ['<img class="thumb"src="', e.target.result,
			// 	'"title="', escape(theFile.name), '"/>'
			// ].join('')
			// document.getElementById('list').insertBefore(span, null)
			getInfo(e.target.result)
					}
		})(f)
		reader.readAsDataURL(f)
	}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false)

function getInfo(pic) {
	var ctxt = canvas.getContext('2d');
	var img = new Image;
	img.src = pic;
	img.onload = function() {
		ctxt.drawImage(img, 0, 0);
		var data = ctxt.getImageData(0, 0, img.width, img.height).data;
		var red = data[0],
		   green = data[1],
		   blue = data[2];
		alert("hight is " + img.height + "px,width is " + img.width + "px,pix(1,1)'s r:"+red + ',g:' + green + ',b:' + blue);
	}
}
<input id="files" type="file">
<output id="list"></output>
<canvas id="canvas"></canvas>

关于javascript - 获取本地镜像的高度、宽度和所有像素的rgb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37785898/

相关文章:

html - 有没有办法为 [epub] 格式化 html 以在每个页面上显示章节标题?

javascript - 如何将文件从 JavaScript 传递到 PHP?

javascript - HTML 5 中的 FB 登录按钮,带有 JS 重定向

javascript - 将 css 附加到 javascript 变量

javascript - 我想改变条形图单个条的颜色

javascript - 包围时获取元素作为 jQuery 对象失败

原型(prototype)函数中的 Javascript 子函数

javascript - jqplot : how to display value from an array in a highlighter

HTML 初学者 : code won't send email via form

jQuery,具有固定高度和最小可能宽度的div