Жил-был в 2000-2005(-2010) годах такой пет-проект - графический пиксель-арт редактор для J2ME мобильных телефонов - PaintCAD (смесь паинта и системы, управляемой с телефонной клавиатуры, ползающей курсором по рисунку, рисующей и применяющей эффекты, обрабатывающей изображения, создающей GIF-анимации, растровые PCF-шрифты и т.д.).

PaintCAD 2.0 2010 года
PaintCAD 2.0 2010 года

Потом от него ответвился PaintCAD 4Windows, который делает то же самое под Windows, но дополненный программируемым звуковым редактором, генератором midi-музыки, покадровым видеомонтажом видео, программируемым рисовальщиком картинок/анимаций на Java Script, а еще irc-чатом:

Windows-версия PaintCAD
Windows-версия PaintCAD

Мобильная версия в это время развивалась параллельно. Был создан андроид-порт через обвязку microemu, превращающую java-мидлет в андроидовский apk-файл.

Но экраны телефонов расползлись со времен 2010 года со старых 101x80, 132x176, 176x220, 240x320, 320x480 до, условно, 1000x2000 и выше. А интерфейс мобильного паинткада так и оставался с толщиной линий рисуемых компонентов в 1 пиксель.

Поэтому теперь медленно, но уверенно создается/модернизируется PaintCAD мобильная версия (PaintCAD Mobile), рассчитанная под такие (вообще - под любые) экраны. Линии компонентов на окошках, размеры шрифтов и значки теперь масштабируются в соответствии с размером экрана.

На данный момент остается отмасштабировать все модули-окошки, аккуратно все домножая на "виртуальный пиксель" - рассчитываемый исходя из ширины/высоты экрана размер воображаемого пикселя, более-менее видного на экране устройства, на котором запущен паинткад. И тогда весь интерфейс будет выглядеть на больших разрешениях экрана современных смартфонов как на старом мобильном телефоне с экраном около 150x200 точек (вообще, смотря какие пропорции экрана - такое и разрешение получится). При этом он будет позволять рисовать изображения хоть размером с экран мобильного (обои), хоть под любой другой (в пределах оперативной памяти смартфона).

Попутно окошки дорабатываются, добавляются новые возможности. Например, вместо настройки "0"-"Настройки"-"Чем рисуем", меняющей кнопки джойстика и цифровой клавиатуры местами, теперь добавлен полноценный назначатель клавиш, позволяющий забиндить клавиши телефонной клавиатуры на любые кнопки кнопочных устройств на Android/J2ME. И теперь паинткад может работать на любых телефонах с кнопками, и на тех, модели которых забиты внутрь (Сименсы, Моторолы, Сонерики, Филипсы, Самсунги и т.д.), и на любых других (любые кнопочные андроиды).

Теперь если на старте долго удерживать любую клавишу, то можно попасть в редактор клавиш:

Редактор кодов клавиш
Редактор кодов клавиш

и назначить любые клавиши андроид-смартфона/консоли/пк на телефонные-паинткадовские еще до запуска паинткада, и управлять им спокойно на этом неизвестном телефоне.

После масштабирования окон под большие экраны получаются окна с толстыми линиями (толщиной в виртуальный пиксель):

Окно с выбором языка интерфейса
Окно с выбором языка интерфейса
Главное окно рисования
Главное окно рисования
Палитра "Сетка"
Палитра "Сетка"
Доработанная палитра "Спектральный подбор"
Доработанная палитра "Спектральный подбор"
Главное меню
Главное меню
Настройка эффекта "Цвет"
Настройка эффекта "Цвет"
Настройка эффекта "Обмен каналов"
Настройка эффекта "Обмен каналов"
Индикатор прогресса сохранения в PNG файл
Индикатор прогресса сохранения в PNG файл
Блокировка клавиатуры чтобы быстро спрятать кнопочный телефон в карман и продолжить рисовать по долгому удерживанию кнопки"#"
Блокировка клавиатуры чтобы быстро спрятать кнопочный телефон в карман и продолжить рисовать по долгому удерживанию кнопки"#"

На сенсорных устройствах паинткад управляется с виртуальной клавиатуры, забирающей себе полэкрана снизу в портретной ориентации или полэкрана справа в альбомной ориентации. Она делит телефонную клавиатуру пополам, отображая либо джойстик, либо клавиши 1-9, и позволяя переключаться между половинами клавиатуры по кнопке со стрелками "вверх-вниз" в правом нижнем углу виртуальной клавиатуры:

Масштабирование/доработка модулей идет по алфавиту друг за другом. Последний отмасштабированный модуль на сегодня это RGBForce. Осталось доработать десяток модулей:

Модули паинткада в JBuilder
Модули паинткада в JBuilder

и паинткад будет отмасштабирован полностью.

Потом еще будут проведены доработки, исправления в плане функционала, фантазий и желаний, а также замеченных багов. И будет выпущен PaintCAD 2.7 (а может и 3.0, т.к. доработок/улучшений много).

Для тех, кто хочет почувствовать себя на старом добром сименсе и попиксель-артить немного с виртуальной клавиатуры или на кнопочном смартфоне (Android 2.3.3 и выше протестировано и работает): попробовать бета-версию можно тут (на самых новых андроидах типа 15-16 может не устанавливаться из-за низкого targetSDK в манифесте, но на Redmi Turbo 3 с андроидом 15, обладателем которого является автор, ставится на ура):

(сайт http без всяких там s, а ля web 1.0, поэтому сохранить файл можно по правой кнопке и "Сохранить данные по ссылке", так просто с https хабра на http хром не пустит)

APK для андроид-телефонов/смартфонов: http://blackstrip.ru/tmp/pcm27b2/PaintCADs.apk

JAR для J2ME-телефонов (с оперативкой в яве 2 мегабайта и более): http://blackstrip.ru/tmp/pcm27b2/PaintCAD.jar

Для интересующихся: за доработкой также можно следить на форуме blackstrip.ru или в телеграм-канале blackstrip_ru

Комментарии (0)