网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月11日
漏签
0
天
javascript吧
关注:
269,156
贴子:
906,482
看贴
图片
吧主推荐
游戏
14
回复贴,共
1
页
<<返回javascript吧
>0< 加载中...
如何获取js动态绘制在canvas图片上的数据?
只看楼主
收藏
回复
从入门
放弃
while
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
如图,楼主想获取这个左上角小窗口内部的数据,因为检查元素里没有,所以bs4, requests无能为力了, 查了下用得是jquery。
炸弹
var
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
ocr
2026-01-11 16:12:40
广告
不感兴趣
开通SVIP免广告
我是真的猪才怪
Number
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
画在canvas上就已经是像素了,最多截图,要不就找画图的那部分代码把数据拿出来
陪你苦笑和打闹
var
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
你network里挨个看
从入门
放弃
while
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
安娜贝尔娃娃
switch
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这不是数据?
三元医美
ifelse
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
要获取 Canvas 上动态绘制的图片 / 图形数据,核心是利用 Canvas API 提供的像素读取、数据导出方法,根据需求(获取像素值、Base64 图片、二进制数据等)选择对应方案。以下是完整的实现思路和代码示例:
一、核心前提
Canvas 动态绘制的内容(包括图片、图形)最终都会转化为像素数据存储在 Canvas 画布中,所有读取操作都基于 Canvas 的 getContext('2d') 上下文对象。
二、常见场景及实现方法场景 1:读取 Canvas 全部 / 指定区域的像素数据(RGB / 透明度)
使用 getImageData() 方法,返回包含像素数组的 ImageData 对象,可直接读取每个像素的 RGBA 值 4lzr.com/zhengrongjiage/52191.html。
代码示例:
// 1. 获取 Canvas 元素和上下文
const canvas = document.getElementById('myCanvas');const ctx = canvas.getContext('2d');
// 模拟动态绘制(比如绘制一张图片)
const img = new Image();img.crossOrigin = 'anonymous';
// 跨域图片需配置,否则无法读取像素
';img.onload = () => {
// 绘制图片到 Canvas
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
// 2. 读取像素数据 4lzr.com/zhengrongjiage/52112.html
// 方式1:读取整个 Canvas 像素 28yt.com/jiage/68949.html
const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
const pixels = imageData.data;
// Uint8ClampedArray 类型,每4个元素对应一个像素的 R/G/B/A(0-255)
// 方式2:读取指定区域(比如 x=10,y=10,宽50,高50)
// const imageData = ctx.getImageData(10, 10, 50, 50);
// 3. 解析像素数据(示例:读取坐标 (x=20, y=30) 的像素值) const x = 20; const y = 30; const index = (y * canvas.width + x) * 4;
// 计算像素在数组中的索引 const r = pixels[index];
// 红色值 const g = pixels[index + 1];
// 绿色值 const b = pixels[index + 2];
// 蓝色值 const a = pixels[index + 3];
// 透明度(0-255) console.log(`坐标(${x},${y})的像素值:R=${r}, G=${g}, B=${b}, A=${a}`);};
BSPR0002
Date
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
1.看到这个图表,web 里的图表一般是用 echarts 这个库绘制的。翻看 F12 中的请求发现了 echarts 相关资源,得到证实。
2.echarts 中的这个区域是它的 tooltips 组件。这个组件是显示鼠标位置数据的提示工具,那么这些数据一定是取自图表中的数据或是由图表中数据生成的,因此想办法找到图表中的数据。
3.注意到:图表所在元素 id 为 main3,echarts 创建图表需要挂载到元素上,以此为突破点进行搜索。
4.注意到:网页 929 行使用 main3 初始化了一个图表 hrChart3,查看同一 script 元素内的图表配置,数据由“华南0点8至1点5斤”等变量提供。
5.跟踪变量“华南0点8至1点5斤”,发现此变量在网页 551 行被创建,587 行被修改,内容来自 ajax 请求 jiayu_json.php?PID=1,跟踪此请求并结合图表获得数据。
2026-01-11 16:06:40
广告
不感兴趣
开通SVIP免广告
纯鼠巧合
吧主
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
哇塞有高手
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示