【发布时间】:2019-04-06 02:06:31
【问题描述】:
我在这里有一张图片:https://tx3.travian.fr/hero_body.php?uid=446,通过使用用户脚本(使用 Tampermonkey)我知道如何读取像素数据,但这个脚本在页面本身上运行,所以它必须是打开的:
var img = $('img')[0];
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);
var pixelData = canvas.getContext('2d').getImageData(195, 56, 1, 1).data;
如果可能,我想从网站的另一个页面实现这一点,进行 get 调用并操作 img,但我只得到奇怪的数据(未知编码或其他),我不知道如何处理结果:
$.get(link , function( data ) {
// test 1
//let obj = $(data).find('img');
// test 2
$$("#content").html('<img src="data:image/png;base64,' + data + '" />');
// test 3
let img = data;
let canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);
var pixelData = canvas.getContext('2d').getImageData(195, 56, 1, 1).data;
});
- 图片加载良好,我可以在“预览”选项卡中看到,这里一切正常:
- 然后如何处理它:
编辑
$.get( link, function( data ) {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext("2d");
var image = new Image();
image.onload = function() {
ctx.drawImage(this, 0, 0);
};
image.src = "data:image/png;base64," + data; // ERROR GET data:image/png;base64,%EF%B ... F%BD net::ERR_INVALID_URL
});
尝试:只需在登录页面打开开发控制台https://tx3.travian.fr/并执行(img页面不需要登录):
$.get("/hero_body.php?uid=446" , function( data ) { console.log(data) });
【问题讨论】:
-
@showdev 这为我指明了一个好的方向,我现在有一张图像并且可以查看像素,但是我得到的图像不适合
GET data:image/png;base64,%EF%B ... F%BD net::ERR_INVALID_URL -
对不起,我不确定你的意思。
-
@showdev 我已经编辑了我的帖子并添加了我编写的代码和链接的错误
-
@showdev,我在 .onload 函数中添加了一个
console.log,但它从未被触发,是因为我的 DOM 中没有真正的元素吗?
标签: javascript jquery ajax image get