2016-08-28 6 views
-1

Рисование изображений, содержащих прозрачность, происходит медленно.Улучшение производительности холста с прозрачностью

Есть ли способ просто отбрасывать пиксели, содержащие прозрачность?

Когда я рисую изображения, которые не содержат прозрачных пикселей, это очень быстро.

+0

Информация не предоставлена. Покажите нам свой код или мы не сможем вам помочь. –

+0

@TiagoMarinho Я бы, но в десятке файлов его много. Какая информация (/ код) отсутствует? (Я имею в виду, мы знаем, как нарисовать изображение на холсте.) – Lolums

+0

вы должны указать минимальный объем кода, который может воспроизвести вашу проблему. Если ваш проблемный код лежит на огромном проекте, неплохо попытаться изолировать его от остальных, чтобы узнать, что произойдет, и пока вы там, вставьте изолированную вещь в свой вопрос. ;) –

ответ

1

Yup, вы можете получить контекст без альфа-поддержки. медленность, скорее всего, происходит из фонового состава браузера, связанного с элементом, и каждый раз что-то рисуется. вот как (обратите внимание на опцию в конце)

var context = canvas.getContext('2d', {alpha:false}); 

вы можете композит прозрачность локально внутри холста, но на заднем плане всегда будет оставаться непрозрачным. Я думаю, что большинство браузеров поддерживают его, но я не буду держаться за шляпу для ie11 или старше.

+0

Это просто закроет фоном вашего холста непрозрачным, drawImage по-прежнему будет обрабатывать прозрачные пиксели из источника как прозрачные. – Kaiido

+0

@Kaiido спасибо. я не был уверен, что нужно оператору :) – bjanes