Получить данные изображения слоя

Есть ли способ получить данные изображения слоя, например тот, который пользовательские фильтры получают в качестве параметра? Да, я знаю, что могу использовать getImageData и получить его, но у меня с этим возникли проблемы. В перетаскиваемых полотнах он захватывает только видимую часть слоя. Может быть, я могу создать новый холст, а затем поместить туда слой и получить данные изображения? Но мне было интересно, есть ли способ сделать это, уже встроенный в konva?


person emi    schedule 23.08.2018    source источник
comment
Вы хотите, чтобы getImageData занимала площадь больше холста?   -  person lavrton    schedule 23.08.2018
comment
Да, это тоже вариант.   -  person emi    schedule 23.08.2018


Ответы (1)


Если вы хотите получить данные изображения холста слоя, вы можете сделать это:

const ctx = layer.getContext();
const imageData = ctx.getImageData(0, 0, width, height);

Если ваша сцена слишком мала и вам нужны данные изображения большего размера, вам нужно экспортировать слой на холст большего размера, а затем получить данные изображения:

const canvas = layer.toCanvas({ x: 0, y: 0, width, height});
const imageData = canvas.getContext('2d').getImageData(0, 0, width, height);
person lavrton    schedule 23.08.2018
comment
Спасибо! Второй вариант как раз то, что мне нужно. - person emi; 23.08.2018