JS生成图像中每个像素的RGB

Aage Torleif

我已经借用了这段代码来尝试满足我的需求http://www.html5canvastutorials.com/advanced/html5-canvas-get-image-data-tutorial/,因为它执行的是最低限度的任务,即逐像素渲染图像。 (我相信)。

我想做的是创建每个像素的RGB信息的数组,并以纯文本显示信息。

为了测试,我尝试使用5x5像素的小图像进行此操作,也将其保存在我用chrome打开的.html文件中。

轻描淡写的JS

<script>
function drawImage(imageObj) {

    var codepanel = document.getElementById('code');
    var canvas = document.getElementById('myCanvas');
    var context = canvas.getContext('2d');
    var imageX = 69;
    var imageY = 50;
    var imageWidth = imageObj.width;
    var imageHeight = imageObj.height;
    var pixels = new Array(); //my addition
    var pixel = 0; //my addition

    context.drawImage(imageObj, imageX, imageY);

    var imageData = context.getImageData(imageX, imageY, imageWidth, imageHeight);
    var data = imageData.data;

    // iterate over all pixels
    for(var i = 0, n = data.length; i < n; i += 4) {
      var red = data[i];
      var green = data[i + 1];
      var blue = data[i + 2];
      var alpha = data[i + 3];
       pixels[pixel] = red + " " + green + " " + blue + " "; //my addition
       pixel++; //my addition
    }
    codepanel.innerHTML =  pixels.join(); //my addition

    var x = 20;
    var y = 20;
    var red = data[((imageWidth * y) + x) * 4];
    var green = data[((imageWidth * y) + x) * 4 + 1];
    var blue = data[((imageWidth * y) + x) * 4 + 2];
    var alpha = data[((imageWidth * y) + x) * 4 + 3];

    for(var y = 0; y < imageHeight; y++) {
      for(var x = 0; x < imageWidth; x++) {
        var red = data[((imageWidth * y) + x) * 4];
        var green = data[((imageWidth * y) + x) * 4 + 1];
        var blue = data[((imageWidth * y) + x) * 4 + 2];
        var alpha = data[((imageWidth * y) + x) * 4 + 3];         
      }
    }
  }

  var imageObj = new Image();
  imageObj.onload = function() {
    drawImage(this);
  };
  imageObj.src = 'pallet.gif';
</script>

的HTML

<!DOCTYPE HTML>
<html>
<head> </head>
<body>
    <canvas id="myCanvas" width="100%" height="100%"></canvas>
    <div id="code"> </div>
</body>
</html>
用户名

这意味着您绘制到画布上的图像来自与页面不同的来源(如果使用本地页面进行测试,file://也被认为是不同的来源)。

解决此问题的最简单方法是:

  • 如果在本地,则安装轻量级服务器以卸载页面(本地主机),例如Mongoose
  • 如果在线,则将图像移动到您自己的服务器上,或尝试请求跨域使用。对于后者,需要将外部服务器配置为允许这样做。

要请求跨域,请设置执行以下操作src

imageObj.crossOrigin = '';
imageObj.src = 'pallet.gif';

如果外部服务器不接受,则会失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找图像中每个像素最接近的RGB颜色

来自分类Dev

如何访问RGB图像的每个像素值?

来自分类Dev

更改RGB图像中多个像素的值

来自分类Dev

查找RGB图像中的裁剪像素

来自分类Dev

更改RGB图像中多个像素的值

来自分类Dev

在鼠标移动时获取fabric.js中图像像素的rgb值

来自分类Dev

如何在python中每个像素都是随机颜色的情况下生成图像

来自分类Dev

我想使用Java系统地生成100x100图像中像素的每个组合

来自分类Dev

获取图像中每个像素的坐标

来自分类Dev

如何使用Qt获取BMP中每个像素的RGB值?

来自分类Dev

在openCV中设置特定图像中像素的RGB值

来自分类Dev

Mat循环的for循环矢量处理RGB图像中的像素

来自分类Dev

从像素标签创建RGB图像

来自分类Dev

生成的图像跳过像素

来自分类Dev

Node JS中的像素化图像

来自分类Dev

更改图像Java中每个像素的颜色

来自分类Dev

在Python中从图像中提取每个像素的x,y坐标

来自分类Dev

opencv查找从特定点到图像中每个像素的距离?

来自分类Dev

根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

来自分类Dev

图像的每个像素上的PyOpenCL缩减内核作为数组而不是每个字节(RGB模式,24位)

来自分类Dev

如何从 .csv 文件中获取的像素值生成图像?

来自分类Dev

火炬:RGB图像中每个通道的最大值

来自分类Dev

获取每个超像素的RGB像素值列表

来自分类Dev

在python中识别图像的像素格式(如RGB,CMYK,LAB..etc)

来自分类Dev

Tensorflow.js计算图像中的黑色像素

来自分类Dev

如何替换节点js中的图像像素

来自分类Dev

尝试使用 Imagemagick 将 RGB 图像转换为十六进制代码列表,每个十六进制代码对应每个像素

来自分类Dev

如何访问每个图像像素,matlab

来自分类Dev

如何将图像中的每个像素作为16位索引存储到色表中?

Related 相关文章

  1. 1

    查找图像中每个像素最接近的RGB颜色

  2. 2

    如何访问RGB图像的每个像素值?

  3. 3

    更改RGB图像中多个像素的值

  4. 4

    查找RGB图像中的裁剪像素

  5. 5

    更改RGB图像中多个像素的值

  6. 6

    在鼠标移动时获取fabric.js中图像像素的rgb值

  7. 7

    如何在python中每个像素都是随机颜色的情况下生成图像

  8. 8

    我想使用Java系统地生成100x100图像中像素的每个组合

  9. 9

    获取图像中每个像素的坐标

  10. 10

    如何使用Qt获取BMP中每个像素的RGB值?

  11. 11

    在openCV中设置特定图像中像素的RGB值

  12. 12

    Mat循环的for循环矢量处理RGB图像中的像素

  13. 13

    从像素标签创建RGB图像

  14. 14

    生成的图像跳过像素

  15. 15

    Node JS中的像素化图像

  16. 16

    更改图像Java中每个像素的颜色

  17. 17

    在Python中从图像中提取每个像素的x,y坐标

  18. 18

    opencv查找从特定点到图像中每个像素的距离?

  19. 19

    根据像素的颜色生成RGB图像的布尔蒙版的最有效的方法是什么?

  20. 20

    图像的每个像素上的PyOpenCL缩减内核作为数组而不是每个字节(RGB模式,24位)

  21. 21

    如何从 .csv 文件中获取的像素值生成图像?

  22. 22

    火炬:RGB图像中每个通道的最大值

  23. 23

    获取每个超像素的RGB像素值列表

  24. 24

    在python中识别图像的像素格式(如RGB,CMYK,LAB..etc)

  25. 25

    Tensorflow.js计算图像中的黑色像素

  26. 26

    如何替换节点js中的图像像素

  27. 27

    尝试使用 Imagemagick 将 RGB 图像转换为十六进制代码列表,每个十六进制代码对应每个像素

  28. 28

    如何访问每个图像像素,matlab

  29. 29

    如何将图像中的每个像素作为16位索引存储到色表中?

热门标签

归档