Привет, я рисую изображение на холсте (html5), и я хочу уменьшить количество вызовов fillRect, которые я делаю, в надежде сделать процесс более эффективным.Слияние пикселей для минимизации операций рисования на холсте Html
Примечание: я называю canvas.fillRect для рисования отдельных пикселей, а пиксели могут быть размером 1x1 или другого размера в зависимости от разрешения, в котором я рисую (поэтому я знаю, что они не называются пикселями, но мой вокальный знак изображения ограничен).
Что я хотел бы сделать, это найти и объединить отдельные пиксели, если они одного цвета. Это уменьшит количество вызовов fillRect и, надеюсь, будет быстрее, чем у меня в настоящее время.
Так позволяет сказать, что у меня есть битовая карта, как это:
[fff, fff, fff]
[f00, f00, f00]
[00f, 00f, 00f]
Вместо того, чтобы 9 звонков в FillRect Я хотел бы сделать 3.
Так что мои вопросы:
1) Что называется этим процессом (поэтому я могу сделать более интеллектуальные исследования, такие как слияние «слияния пикселей», «слияние прямоугольников» и т. Д., Не дает никаких полезных результатов).
2) Каждый осознает любой открытой библиотеки источника, который реализует этот (не должен быть Javascript)
3) Есть ли кто-то думает, что добавление этого шага предварительной обработки будет на самом деле сделать код медленнее в JS?
Спасибо Все
Guido Тапиа
Re 3): Да, я не уверен, что оптимизация, которую вы пытаетесь реализовать, на самом деле будет полезна. Некоторые лакокрасочные машины могут даже использовать эту технику под капотом. Я бы посоветовал посмотреть на себя, если у процедуры рисования есть некоторые проблемы с производительностью, прежде чем пытаться ускорить его. Тем не менее, я не видел, чтобы кто-либо использовал canvas в HTML5, чтобы прибегать к подобным подходам даже при сложном рендеринге. –
Спасибо Jakub, я сделал еще несколько тестов, и кажется, что около 70% моих проблем с производительностью не являются актуальными проблемами с холстом и рендерингом. Поэтому я думаю, что мне лучше оставить это сейчас и сосредоточиться на этапах предварительной обработки. Спасибо – gatapia