javascript - 从数据 url/uri 图像中提取像素颜色

标签 javascript css data-uri

所以基本上我已经有了这个元素,我将屏幕截图直接上传到网站,并进行了 dataURL 或 dataURI 转换(我不知道哪个是正确的),我正在努力制作它以便我可以屏幕截图中的像素相关信息。

我在背景图像属性中插入数据 URL,但我无法将 Canvas 用于我的元素的其他功能。

我想获取特定位置给定像素的特定颜色。我有包含 dataURL 的字符串。有没有办法从中提取像素颜色?

对于那些不熟悉数据 URL 的人,这里是我的 javascript 为我的截图之一创建的:

pastebin.com/NRad8nQr

我已经找到了很多关于这个主题的结果,但是我找不到一个不使用 Canvas 的..

最佳答案

不幸的是,访问像素的唯一内置方式是使用 Canvas 。

DataURL 本身可以用 Base64 解码,但它会为您提供压缩的二进制数据。要获取像素数据,您需要为所有支持的格式重新实现实际图像解码,例如 JPEG、PNG、GIF 等。

例如,如果您将其限制为 JPEG,则可以使用 https://github.com/gchudnov/jpeg-asm/blob/master/README.md然后:

// pseudo code
var jpegData = atob(dataUrl) 
var pixels = decodeJPEG(jpegData)
var color = pixels.slice((y * width + x) *4, 4)

我创建了 a working example for PNG on Glitch

关于javascript - 从数据 url/uri 图像中提取像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44590999/

相关文章:

javascript - 将 JSON 对象数据与各个 div 连接

javascript - <img> onload 处理程序无法针对 dataURI 触发

javascript - 以毫秒为单位的日期 tolocaleString?

javascript - 同页W3自动幻灯片2

html - 是什么导致这些 html 超链接的高度与文本的其余部分不同?

php - 将鼠标悬停在 li 不显示 div 上

css - 为什么 CSS 数据 URI 会被记录为 404 请求?

gmail - 电子邮件主题中的动画图标

javascript - Fuelphp 路线到 Angular 路线

javascript - 如何计算javascript中字符串中的原始字符?