Javascript Canvas pixelformat - PullRequest
5 голосов
/ 21 июля 2011

Я заметил, что все, кто работает с объектом Canvas, умножают свой путь вокруг пиксельного буфера на 4 (RGBA). Я много работал с нативным пиксельным кодированием (Delphi и C ++) и распознаю это как обычный 32-битный RGBA (888-8 кодирование). У меня вопрос : есть ли способ определить пиксельный формат браузера? Если вы работаете на устройстве, поддерживающем 16-битную (кодировка 565) или 24-битную (кодировка 888), будет очень медленно, если браузеру придется понизить битовые карты для каждой перерисовки. Особенно, когда речь идет об альфа-смешении.

Также (и это вторично): возможно ли вообще создать чистый 888 или 565 битовый массив в javascript? Или как насчет 8-битной палитры на основе растрового изображения? На мой взгляд, игры на базе JS выиграют только от необходимости работать с 8-битными пикселями.

Ответы [ 3 ]

3 голосов
/ 21 июля 2011

Нет. Нет никакого видимого способа понизить пиксели холста, поскольку это просто то, что imageData относится к самой спецификации.

Конечно, вы можете создать игру на javascript, используя только 8-битные PNG-файлы, которые позволят сэкономить место и время загрузки, но не время рендеринга.

2 голосов
/ 21 июля 2011

Нет, нет способа указать, какое цветовое пространство вы хотите.Любые ручные взломы только замедляют рендеринг.По моему опыту, некоторые браузеры (Google Chrome) могут воспроизводить очень сложные игры и при этом поддерживать высокую частоту кадров.

0 голосов
/ 27 июля 2011

На самом деле вы смешиваете две сущности: цветовое пространство изображения и цветовое пространство поверхности.5-6-5 - это цветовое пространство поверхности, которое по определению не имеет понятия прозрачности.Изображение и <canvas> являются субъектами рендеринга в z-порядке, поэтому должны иметь альфа в той или иной форме.

Поэтому ответ «нет», поскольку он не соответствует требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...