javascript - 如何检测透明区域单击或用户在 Canvas 中的透明区域绘制?

标签 javascript image cordova ionic-framework html5-canvas

我正在使用drawImage 将图像绘制到 Canvas 上。它是一个被透明像素包围的 PNG,如下所示:

如何检测 Canvas 上该图像的透明部分中的绘图移动路径?我想检测用户是否绘制透明部分。

我正在尝试这个tutorial我按照tutorial中所示进行了操作.

var ctx = canvas.getContext('2d'),
    img = new Image;

img.onload = draw;
img.src = "/image/UFBxY.png";

function draw() {
  // draw original image in normal mode
  ctx.drawImage(img, 10, 10);
}
<canvas id=canvas width=500 height=500></canvas>

查看 Github 上的完整代码

查看现场演示 IonCanvas

最佳答案

要查明像素是否透明,请使用 ctx.getImageData 获取像素并查看 alpha 值。

示例

// assumes ctx is defined
// returns true if pixel is fully transparent
function isTransparent(x, y) { // x, y coordinate of pixel
    return ctx.getImageData(x, y, 1, 1).data[3] === 0; // 4th byte is alpha
}

关于javascript - 如何检测透明区域单击或用户在 Canvas 中的透明区域绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58801460/

相关文章:

ios - GPU 内存因 GPUImage 而崩溃

android - Cordova在android项目中添加插件很慢

javascript - CSS 表 : How to position action buttons left to each row

java - 为什么 setIcon 不在 JButton 上显示图像?

javascript - 从应用程序脚本中的电子表格更新下拉列表

jquery - 如何使图像 slider 自动播放?

java - 在 Android 设备上构建时出错

javascript - 更改给定脚本的 html

javascript - 如何从 Angular 项目中使用 javascript 导出独立的 html/css?

javascript - 悬停时, Angular 工具提示应保持打开状态