КОТ++
Прикладное программирование
Системное программирование
Программирование микроконтроллеров

Аналогично тому, как написание картины является искусством для души, так и написание программы является искусством для разума. (с) Volnik

Как уменьшить память занимаемую графическими элементами

Опубликовано
Комментарии 0

Во время разработки игры, приложения или сайта очень часто возникает вопрос уменьшения занимаемой памяти. Обычно большую часть памяти могут занимать графические элементы.

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

По той же причине важно тоже самое проделать для сайта, т.к. скорость загрузки сайта зависит от его объёма и в свою очередь влияет на конверсию.

Первый способ, который поможет уменьшить объём памяти, занимаемой картинками, это использование программы image catalyst. С помощью этой программы мне удалось сжать графику (я использовал png формат) для своей игры почти на 30% и на глаз такое сжатие не заметно. В этой программе есть два режима сжатия advanced и xtreme, я всегда использую xtreme.

Второй способ будет немного поинтересней. Заключается он в том, что однообразные картинки нужно положить на один холст и сохранить в виде одного изображения. Например, если изначально есть две картинки размерами 128×128, то на выходе мы должны получить одну 256×128, но содержащую в себе два изображения. Никогда не думал, что таким образом удастся сэкономить много памяти, но я ошибался. У меня были 5 картинок размером 128×128 и весили они в сумме 45кб, склеив я получил одну картинку 640×128 с пятью изображениями, но весом уже 17кб! Получается почти 40% экономии.

На первый взгляд может показаться, что такую графику в одном изображении потом будет не удобно использовать в игре, но битблиттинг всех спасёт. Внутри игры можно легко разделить эту графику по отдельным картинкам. На as3 это делается с помощью функции copyPixels, тем более отделять не обязательно, достаточно запомнить где какой кадр находится на изображении.

Ну а на сайтах использование таких спрайтовых методов ещё проще. Определением местоположения кадра в изображении занимается css. Это делается через свойство background-position. То есть сдвигая изображение можно использовать разные кадры на этом изображении.

Теги ,
Автор

Комментарии

Нет комментариев к данной статье.

Комментировать

Поля обозначенные как * требуются обязательно. Перед постингом всегда делайте просмотр своего комментария.




[
]
[
]