Я обнаружил, что getImageData
холста HTML, похоже, возвращает неправильные значения байтов.
Я сгенерировал изображение 1x1 px со следующим Python кодом:
from PIL import Image
import numpy as np
a = np.array([[[12, 187, 146, 62]]], dtype=np.uint8)
Image.fromarray(a).save('image.png')
Я преобразовал изображение в base64, чтобы включить его в этот фрагмент кода:
let image = document.createElement('img');
image.addEventListener('load', () => {
let canvas = document.createElement('canvas');
let ctx = canvas.getContext("2d");
canvas.width = image.width;
canvas.height = image.height;
ctx.drawImage(image, 0, 0);
let data = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
document.body.innerHTML = data;
});
image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGPg2T3JDgADyAGYmiSbAQAAAABJRU5ErkJggg==";
При запуске в Firefox отображается 12,189,148,62
. В хроме это показывает 12,185,144,62
. Но исходные значения 12,187,146,62
.
Может кто-нибудь объяснить это?