У меня есть изображение здесь: 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 call и манипулировать 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;
});
- Изображение хорошо загружено, я вижу его на вкладке «Предварительный просмотр», и здесь все в порядке:
![enter image description here](https://i.stack.imgur.com/Jtib8.png)
- Но тогда как с этим бороться:
![enter image description here](https://i.stack.imgur.com/L4ArS.png)
Редактировать
$.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) });