Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Доделал приложение пароля для «Войи»

Глаза боятся, руки делают. Что-то я сначала приуныл, когда понял сколько возни предстоит, чтобы сделать интерфейс ввода часового пояса, который я решил добавить в программу для получения инженерного пароля «Войи» под «Флиппер».Flipper Zero Даже как-то руки опустились.

Начал потихоньку — накидал сначала функций-заглушек, а потом всё реализовал в течение дня. Всё, теперь программа приобрела законченный вид. Публиковать в каталог, правда, не планирую — очень уж невелика аудитория. Много ли владельцев «Войи» с «Флиппером»?

Программа, запущенная на «Флипере Зеро». Виден указанный часовой пояс — GMT+03:00

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

Чтобы получить стрелку в другу строну, повернул её в редакторе, проделал всё то же, что с первой, но при отображении стрелка получалась в какую-то неравномерную крапинку.

Интерфейс задания часового пояса

Как я уже рассказывал, инструментарий для компиляции программ сам конвертирует картинки в нужный «Флипперу» формат. Я не ковырял, но по виду это обычный XBM — формат двухцветной чёрно-белой графики.

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

Сначала я решил это проверить. Поводил «пипеткой» на картинке, не нашёл. Нарисовал заново. Это ситуацию не исправило. Решил посмотреть в бинарном виде сконвертированные файлы, оказалось сложновато, плюнул. Пошёл смотреть в чём разница у исходных файлов. Оказалось, что один у меня в формате 1-bit colormap PNG, а второй (который с дырками) — 1-bit grayscale PNG.

Подумал, что проблема в этом, но как преобразовать одно в другое сходу не разобрался. Утилитой magick начал конвертировать проблемную картинку в PNG, перебирая все известные мне ключи подряд, пока в один момент дырки не пропали. Я так и не выяснил какое сочетание настроек мне помогло, потому что в процессе потерял исходную «дырявую» картинку, а делать новую не хотелось — мне ещё предстояло много программировать.

«Что это было, Бэрримор» — непонятно до сих пор, но на всякий случай записываю себе этот случай, чтобы в следующий раз хотя бы примерно понимать как с ним бороться.