网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数: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
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 14回复贴,共1页
<<返回javascript吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示