Форум программистов, компьютерный форум, киберфорум
Nikto
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

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

Запись от Nikto размещена 25.05.2016 в 13:57
Показов 2397 Комментарии 2

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

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

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

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

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

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

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

Источник: https://catplusplus.ru/blog/ho... s_elements
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для SatanaXIII
    А если шифровать изображения какими-нибудь уравнениями десятого порядка, то будут еще меньше весить. Но на приведение его в человеческий вид будет уходить куча времени ресурсов.
    Это бесконечное противостояние занимаемой памяти и времени работы программы.
    Запись от SatanaXIII размещена 27.05.2016 в 09:24 SatanaXIII вне форума
  2. Старый комментарий
    есть много программ по сжатию. я в 5 раз сайт сжимал. простые гиф/png в 4 раза,
    анимационные и похожие лучше ставить рядом вертикально - это будет непрерывный архив, если интересно пиши в личку дам ссылки. тут запрещено.
    скорость декомпрессии зависит от алгоритма. есть вполне быстрые.
    Запись от nekto123456789 размещена 01.06.2016 в 17:01 nekto123456789 вне форума
 
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru