01.03.2019

Draw Pixel Art 3.0

Draw Pixel Art

Всем привет! Поздравляю с наступлением долгожданной весны!

Приложение Draw Pixel Art было обновлено до версии 3.0. Теперь оно умеет работать со слоями и стало ещё более удобным, стабильным и оптимизированным. В приложении рекордный список изменений.



В приложение наконец-то были внедрены слои. Это была очень непростая задача, пришлось переворотить весь рабочий код ядра приложения, чтобы заставить все имеющиеся модули адекватно взаимодействовать со слоями. Некоторые куски кода были настолько древними, что пришлось их заново переписывать.


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


Занятая приложением и свободная области оперативной памяти теперь отображается в окне "Сведения", вызываемое через меню "Приложение" в правом верхнем углу. Там же отображается примерное число кадров и слоёв, которые ещё можно создать без ущерба переполнения памяти.

Было проведено огромное количество стресс тестов для улучшения стабильности приложения при работе с тяжелыми проектами. Приложение жрало до половины гигабайта RAM, держа в памяти около 20 кадров размером 1200х1200 с 10 слоями каждый.  К моему удивлению, приложение всё стабильно переваривало и лишь когда достигало критической отметки потребления RAM, выдавало сообщение о том, что дальнейшая работа невозможна без потери данных проекта с рекомендациями очистить оперативную память и вернуться в приложение для возобновления работы. Т.е. даже в самых тяжелых ситуациях приложение сделает всё, чтобы сохранить вашу работу, однако, все равно рекомендуется периодически сохранять проект.

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


Эту же служебную информацию считывает и встроенный файловый браузер, ведь теперь он умеет динамически загружать миниатюры файлов и палитр.

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

Плеер анимации со всеми функциями теперь полностью интегрирован в редактор для более удобного воспроизведения и контроля создаваемой анимации.
Это также позволило запускать анимацию при регулировки скорости воспроизведения анимации для её визуальной оценки перед экспортом GIF.


Ну и на закусочку в приложение были внедрены 14 стандартных палитр, среди которых 12 палитр с самых известных игровых систем и компьютеров: Amstrad CPC, Apple II, CGA for IBP-PC, Commandore 64, Commandore VIC-20, GameBoy, MSX systems, Mattel Aquarius, NES, SEGA Master System, Thomson M05 и ZX Spectrum.


С каждым обновлением приложение становится всё более профессиональным и продвинутым. Я очень рад, что многие из вас считают его лучшим на рынке. Это означает, что я не зря трачу огромное количество времени на разработку этого проекта в одиночку.

2 комментария:

  1. It is the best app of pixelart!

    ОтветитьУдалить
  2. Отличный пиксельный редактор. Лучший на данный момент имхо. Но есть моменты, которые доставляют неудобства: не хватает инструмента лассо; и если выделить, скопировать и вставить участок рисунка, то он оказывается не в том же месте откуда был скопирован(в случае если необходимо сместить его на пару пикселей в сторону приходится возвращать его на прежнее место). Со вторым можно смириться, но без лассо как-то неоч

    ОтветитьУдалить