Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 14.05.2011, 00:29   #1
PassCall
Разработчик
 
Аватар для PassCall
 
Регистрация: 07.04.2011
Адрес: Млечный путь, Земля, Европа, Беларусь, Могилев
Сообщений: 391
Написано 94 полезных сообщений
(для 319 пользователей)
Сообщение Эксперименты с мидлетом

Както раз решил поподробнее узнать возможности своего телефона (а заодно и мидлета).

И решил провести эксперименты.

Опыт 1.
Возьмем картинку размерами 3000x3000. Просто белый квадрат. Сохраняем в пнж с минимальным количесвтом цветов , чтобы получить максимальное сжатие. Полученный размер картинки - около 8 килобайт. Создаем простейший мидлет, который эту картинку грузит (img:=loadimage('/123.png'); Компилируем, скидываем на телефон и запускаем. Сразуже выбивает ошибку "OUT OF MEMORY", что означает нехватки памяти.
ВЫВОД: если картинка весит 8 килобайт, то это не значит что она и в памяти (какбэ оперативной - у мобильника в качестве оперативки используется обычная память телефона) она будет занимать 8 килобайт. Дело в том, что для пущего быстродействия мидлет "распаковывает" пнж в простой битмап образ. Чтобы при каждом обращении к картинке не пришлось распаковывать картинку заново.

Опыт 2. Возьмем и засунем в мидлет файл большого размера (например 2 мегабайта).
Проверить, что случится при запуске, не удалось - телефон даже не запустил мидлет: "испорченное приложение". Видно, не нравится сам размер файл. Ладно, скинем пнж размером 600 кб. Скидываем. Мидлет запустился. Теперь попробуем загрузить картинку в память. Выкидывает с ошибкой.
ВЫВОД: картинка преобразуется в битмап образ только при загрузке. Если же картинка просто будет лежать в архиве - это не страшно.

Опыт 3: что выгоднее - хранить картинки по отдельности или создать 1 большую картинку, а потом вырезать с помощью imagefromimage? Что будет весить меньше: сумма картинок или один тайлсет?
Было отобрано 25 картинок.
Эксперимент показал, что выгоднее иметь один тайлсет, чем множество картинок, где то на 50%. Правда, при большом размере тайлсета может уменьшится качество, так как количество цветов может превысить 256 и придется уменьшать его до 256. Выход - разделить тайлсет на несколько, и сгруппировать в одном тайлсете тайлы одного тона (например, в одном тайлсете - цветные, в другом - монохромные).

В следующий раз я проведу еще пару опытов.
Спасибо за прочтение!
__________________
Мечта программиста: запрограммировать процесс программирования.

Всё гениальное - просто.

http://passcall.ucoz.com
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо PassCall за это полезное сообщение:
Igor (14.05.2011), Rock2roll (14.05.2011)
Старый 14.05.2011, 00:53   #2
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Эксперименты с мидлетом

Опыт 1.
facepalm
Опыт 2
facepalm
Опыт 3
выгоднее иметь один тайлсет, чем множество картинок, где то на 50%
В каком смысле? В памяти будут весить одинакого, внутри архива тоже. В чем выгода?
__________________

(Offline)
 
Ответить с цитированием
Старый 14.05.2011, 03:16   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Эксперименты с мидлетом

Сообщение от Nerd96 Посмотреть сообщение
В каком смысле? В памяти будут весить одинакого, внутри архива тоже. В чем выгода?
Вероятно, делается попытка провести аналогию с ФС ПК: дискретизация по размеру кластера приводит к тому, что, например, файл размером 1 байт занимает на диске 1Кб. Т.о. поместив (упаковав в режиме store) 1024 файла по байту (опять-таки, приняв кластер равным 1Кб) мы займём на диске столько же места, сколько весит файл в 1 байт. Иными словами: при архивации, уже сам факт конкатенации файлов в один контейнер-объект, позволяет выиграть место.
Не возьмусь судить о специфике адресации и хранения файлов в трубках.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
YellowAfterlife (14.05.2011)
Старый 14.05.2011, 22:08   #4
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Эксперименты с мидлетом

Открою секрет: загруженная в память картинка занимает по 4 байта на пиксель - 3 rgb и альфа.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 15.05.2011, 22:02   #5
nil0q
ПроЭктировщик
 
Аватар для nil0q
 
Регистрация: 30.06.2009
Адрес: Челябинская обл.
Сообщений: 111
Написано 32 полезных сообщений
(для 99 пользователей)
Ответ: Эксперименты с мидлетом

Сообщение от Igor Посмотреть сообщение
Открою секрет: загруженная в память картинка занимает по 4 байта на пиксель - 3 rgb и альфа.
А вот и не факт
Например, на телефонах SE в приложениях используется режим 65536 цветов и 32 ступени прозрачности, т.е. R - 5 bit, G - 6 bit, B - 5 bit, A - 5 bit, всего 21 bpp. Вот так
Проверено с помощью Java Info от Gray Wolf & Odd
__________________
Аинéжарбази овокáсьф имятнэ́меле как, имякщтóт и имяини́ль оклёт ими́ньдо сяюзлёп, ильсы́м эынэвьтспóс ышáн мóнян тягалзи, эы́жущт тят-ищт сант-ищтý анакаккáт; áкызэй овóваримь авотэ́ як итя́ммарг тыжýлс аирьтэмяег аянлетя́трэщтанот, мадóраи мынавóзарбо мэ́сьф мынтáняп авокáныдя, икиньхэ́ть мóкызэй астэя́львэй шóтрэщт ильсэ́й.
Щамóпф раткáдэрь оидюá!
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 00:16   #6
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Эксперименты с мидлетом

вот только сейчас узнал: эти две картинки практически одинакового размера, разница 53 байта, а вот пустое прозрачное поле в некоторых случаях существенно упрощает отрисовку - не надо брать поправок по х и у.
(Чтобы увидеть разницу выделить картинки)
Изображения
  
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com