Javascript Canvas:如何获取透明png文件上的特定点?

小费

在此处输入图片说明

好的,我对https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/getImageData的get Image Data函数感到困惑

我有一个png格式的路径图像,上面有透明背景。我需要获取的是高度为2时路径的左边缘和右边缘的坐标x,y。(红色箭头的要点)

getImageData是正确使用的函数吗?任何人都可以就如何获得建议提供一些建议吗?

提前致谢。

海道

是的,getImageData(x, y, width, height);
如果您只有两种颜色(此处为透明和白色),请使用:

var img = new Image();
img.onload = getPoints;
img.crossOrigin = 'anonymous';
img.src = "https://dl.dropboxusercontent.com/s/lvgvekzkyqkypos/path.png";

function getPoints(){
  // set our canvas
  var canvas = document.createElement('canvas'),
      ctx = canvas.getContext('2d');
  canvas.width = this.width;
  canvas.height = this.height;
  // draw the image
  ctx.drawImage(this,0,0);
  // get the middle y line
  var imageData = ctx.getImageData(0,Math.floor(this.height/2), this.width, 1);
  var data = imageData.data;
  // set an empty object that will store our points
  var pts = {x1: null, y1: Math.floor(this.height/2), x2: null, y2:Math.floor(this.height/2)};
  // define the first opacity value
  var color = 0;
  // iterate through the dataArray
  for(var i=0; i<data.length; i+=4){
    // since we'relooking only for non-transparent pixels, we can check only for the 4th value of each pixel
    if(data[i+3]!==color){
      // set our value to this new one
      color = data[i+3];
      if(!pts.x1)
        pts.x1 = i/4;
      else
        pts.x2 = i/4;
      }
    }
  
  snippet.log('start points : '+pts.x1+'|'+pts.y1);
  snippet.log('end points : '+pts.x2+'|'+pts.y2);
  ctx.fillStyle = 'red';
  ctx.fillRect(pts.x1-5, pts.y1, 10, 10);
  ctx.fillRect(pts.x2-5, pts.y2, 10, 10);
  document.body.appendChild(canvas);
  }
body{background-color: blue}
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 Javascript 在 Canvas 上绘制 SVG?

来自分类Dev

在特定点停止/启动JavaScript增量

来自分类Dev

如何在javascript中获取HTML5 Canvas.todataurl文件大小?

来自分类Dev

Javascript异步功能如何在特定点显式产生控制权?

来自分类Dev

如何使用javascript获取特定的日期

来自分类Dev

如何使用javascript获取网址的特定部分?

来自分类Dev

如何获取我的代码始终位于Javascript Canvas的中间

来自分类Dev

如何从Javascript FileReader获取文件名?

来自分类Dev

如何从Javascript获取AWS静态文件URL?

来自分类Dev

加载页面后如何获取JavaScript文件?

来自分类Dev

如何从URL获取Javascript源(js文件)?

来自分类Dev

如何从Java中的JavaScript文件获取结果

来自分类Dev

Canvas的ToDataURL(JavaScript)通过PHP上传到服务器后正在创建损坏的PNG文件

来自分类Dev

Canvas的ToDataURL(JavaScript)通过PHP上传到服务器后正在创建损坏的PNG文件

来自分类Dev

如何使用:JavaScript Canvas中的多个对象上的globalCompositeOperation

来自分类Dev

如何在文件中的RPi上获取完整的HTML AFTER JavaScript

来自分类Dev

裁剪HTML5 Canvas / JavaScript后,如何从图像中删除透明空白?

来自分类Dev

将缩放和旋转应用于特定点-Javascript

来自分类Dev

链接回JavaScript控制页面的特定点

来自分类Dev

Javascript如何获取输入

来自分类Dev

JavaScript - 如何获取超过 1 个文件的文件 id 属性?

来自分类Dev

Javascript:如何遍历文件

来自分类Dev

如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

来自分类Dev

如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

来自分类Dev

如何从Ransack gem为JavaScript上的Ruby on Rails的Ransack gem生成的url参数中获取特定值

来自分类Dev

如何使用JavaScript SDK获取Facebook用户的特定帖子信息?

来自分类Dev

javascript:如何获取嵌套div中特定属性的值

来自分类Dev

使用JavaScript单击特定广播时如何获取文本?

来自分类Dev

如何使用javascript获取特定的子节点类名称?

Related 相关文章

  1. 1

    如何使用 Javascript 在 Canvas 上绘制 SVG?

  2. 2

    在特定点停止/启动JavaScript增量

  3. 3

    如何在javascript中获取HTML5 Canvas.todataurl文件大小?

  4. 4

    Javascript异步功能如何在特定点显式产生控制权?

  5. 5

    如何使用javascript获取特定的日期

  6. 6

    如何使用javascript获取网址的特定部分?

  7. 7

    如何获取我的代码始终位于Javascript Canvas的中间

  8. 8

    如何从Javascript FileReader获取文件名?

  9. 9

    如何从Javascript获取AWS静态文件URL?

  10. 10

    加载页面后如何获取JavaScript文件?

  11. 11

    如何从URL获取Javascript源(js文件)?

  12. 12

    如何从Java中的JavaScript文件获取结果

  13. 13

    Canvas的ToDataURL(JavaScript)通过PHP上传到服务器后正在创建损坏的PNG文件

  14. 14

    Canvas的ToDataURL(JavaScript)通过PHP上传到服务器后正在创建损坏的PNG文件

  15. 15

    如何使用:JavaScript Canvas中的多个对象上的globalCompositeOperation

  16. 16

    如何在文件中的RPi上获取完整的HTML AFTER JavaScript

  17. 17

    裁剪HTML5 Canvas / JavaScript后,如何从图像中删除透明空白?

  18. 18

    将缩放和旋转应用于特定点-Javascript

  19. 19

    链接回JavaScript控制页面的特定点

  20. 20

    Javascript如何获取输入

  21. 21

    JavaScript - 如何获取超过 1 个文件的文件 id 属性?

  22. 22

    Javascript:如何遍历文件

  23. 23

    如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

  24. 24

    如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

  25. 25

    如何从Ransack gem为JavaScript上的Ruby on Rails的Ransack gem生成的url参数中获取特定值

  26. 26

    如何使用JavaScript SDK获取Facebook用户的特定帖子信息?

  27. 27

    javascript:如何获取嵌套div中特定属性的值

  28. 28

    使用JavaScript单击特定广播时如何获取文本?

  29. 29

    如何使用javascript获取特定的子节点类名称?

热门标签

归档