как заменить getImageData и putImageData для повышения производительности?

getImageData очень плохо влияет на производительность. У меня нет файла png или jpg. Поэтому я делаю изображение, пока моя программа загружается. Я разрабатываю приложение, используя дисплей iPhone Retina. И мне нужна ваша помощь с этим :(

Мне нужно создать изображение во время выполнения, в котором я могу повторно использовать его с какой-либо переменной.

На дисплее сетчатки использование холста кеша сделает изображение либо слишком пиксельным, либо слишком большим. Если вы не знаете, как исправить?

var x = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); //width of screen
var y = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); // height of screen

if (x === 414 && y === 736) {
    imgData = ctx.getImageData(0,0,3*x,3*365*Yf);
} else {
    imgData = ctx.getImageData(0,0,2*x,2*365*Yf);
}

ctx.clearRect(0, 0, x, 365 * Yf); // size of Image, retina display quality
ctx.putImageData(imgData, 0, 0);

person Guðni Már Gilbert    schedule 07.01.2015    source источник
comment
Извините, в чем именно заключается ваш вопрос? Трудно отличить от текущей формулировки.   -  person Geuis    schedule 07.01.2015
comment
Да .. извините за плохую формулировку: P... getImageData и putImageData плохая производительность, мне нужна альтернатива.   -  person Guðni Már Gilbert    schedule 07.01.2015
comment
вы можете сохранить сгенерированные изображения как HTMLImage, используя URLObject как src. Таким образом, вы можете использовать drawImage, чтобы нарисовать его снова…   -  person philipp    schedule 07.01.2015


Ответы (1)


Использование drawImage(canvas) намного быстрее, чем использование putImageData

Однако я не знаю более быстрого способа getImageData.

person MacroMan    schedule 18.01.2017