gpt4 book ai didi

javascript - 您如何简单地从图像中获取像素数据数组?

转载 作者:技术小花猫 更新时间:2023-10-29 12:54:49 25 4
gpt4 key购买 nike

谢谢大家的回复。我应该更具体地回答我的问题。我看了很多例子,但这是来自 W3 Schools 的例子(感谢@Pointy 指出这不是一个应该依赖的来源——没有双关语意)。

http://www.w3schools.com/tags/canvas_getimagedata.asp

<!DOCTYPE html>
<html>
<body>

<img id="scream" src="img_the_scream.jpg" alt="The Scream" width="220" height="277">

<canvas id="myCanvas" width="220" height="277" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>

<script>
document.getElementById("scream").onload = function () {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 0, 0);
var imgData = ctx.getImageData(0, 0, c.width, c.height);
// invert colors
for (var i = 0; i < imgData.data.length; i += 4) {
imgData.data[i] = 255 - imgData.data[i];
imgData.data[i + 1] = 255 - imgData.data[i + 1];
imgData.data[i + 2] = 255 - imgData.data[i + 2];
imgData.data[i + 3] = 255;
}
ctx.putImageData(imgData, 0, 0);
};
</script>

</body>
</html>

首先,我有点困惑,因为 W3 Schools 网站上的示例显示了反转图像的像素颜色,但是当我将代码复制到 Sublime Text 2 中,保存并在 Chrome 中打开时,图像的像素颜色不会反转,图像只是在它旁边再次出现完全相同。

我的主要问题是如何在此代码中添加一行以显示图像的整个像素数据数组?

我在图片下方添加了一个id为“data”的空div,并添加了以下代码,但没有出现整个像素数据数组:

document.getElementById("data").innerHTML=imgData.data;

我还尝试通过添加以下内容至少查看像素数据数组的长度,但没有成功:

document.getElementById("data").innerHTML=imgData.data.length;

我查看了几个处理来自各种来源的图像像素数据的示例,并多次尝试获取整个像素数据阵列,但未能成功。

我想查看像素数据阵列以识别图片中的字符或图像,并开始查看可能从图像中的特定事物中出现的模式。

非常感谢您的帮助。

最佳答案

这应该正是您所需要的:

http://www.html5canvastutorials.com/advanced/html5-canvas-get-image-data-tutorial/

下面是如何获取一个像素的RGBA细节:

imageData = context.getImageData(imageX, imageY, imageWidth, imageHeight); // get the image array

//below is how to access to your pixel details
red=imgData.data[0];
green=imgData.data[1];
blue=imgData.data[2];
alpha=imgData.data[3];

编辑:您编辑的问题的答案是:

document.getElementById("data").innerHTML=imgData.data.toString();

或者您可以使用循环遍历数组并每次打印一个元素,如下所示:

for(i=0 ; i< imgData.data.length ; i++){
document.getElementById("data").innerHTML += imgData.data[i];
}

希望对您有所帮助。

关于javascript - 您如何简单地从图像中获取像素数据数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com