Pull to refresh

Comments 20

Можно, конечно, использовать графический редактор со встроенной функцией дизеринга Floyd-Steinberg, но ради пары картинок, нет желания изучать функционал этого сложного ПО. Да и как правило эти редакторы в основном платные.

Есть и бесплатные... В ImageMagick можно, вроде в Gimp еще. Python pillow в конце концов.

Не понял, что значит "пакетно" если у вас пара картинок? Если просто сделать из gif набор картинок png то это можно наити в ин-те, например так:

convert -coalesce input_img.gif out_img%05d.png

Преобразовать все кадры анимации в ч/б, Floyd-Steinberg вид и выдать Си код всей анимации одним файлом

Преобразовать все кадры анимации в ч/б, Floyd-Steinberg вид

Используйте, например, ImageMagick для этого.

выдать Си код всей анимации одним файлом

Си код для ImageMagick это слишком, впрочем можно (в Linux) получить из картинки текстовый HEX файл, а название массива самому придется вводить.

Но вы же говорили про "использовать графический редактор", а вот уже хотите Си код.

Но вы же говорили про "использовать графический редактор", а вот уже хотите Си код.

А что тут такого? Это очень многие графические редакторы "из коробки" умеют. Gimp, например, умеет.

Ну так, это хорошо. Автор наверно рад...

Для одиночной картинки GIMP может сгенерировать код, но не в том виде который понимает библиотека GFX

Значит остается ImageMagick или python. Python имеет смысл использовать если знаком этот язык.

Вам не нравятся альтернативные методы?

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

Кому то легче с командной строкой.

Мне все равно как, главное, что бы на это уходило минимум времени. Так как времени катострафически нехватает.

Я правильно понимаю, что проеобразованный в Си код содержит изображение построчно? И это для дисплея с внутренним по-колоночным буфером (по 8 бит в колонке)? То есть, мощность процессора у нас запасом?

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

К сожалению из-за совместимости с разными дисплеями, библиотека GXF настолько тупо написана, что она складывает байт изображения в видеобуфер по пиксельно, а потом из видеобуфера передает на дисплей и снова из пикселей формирует байт. Нужно свою функцию обмена с дисплеем писать

"Впрочем, оптимизировать тут можно в любом случае." -- я ж об этом и написал. У меня есть опыт программирования для SSD1306, который не сильно отличается от SH1106.

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

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

Я написал свой комментарий в дополнение к изложенной информации. Будете ли вы это использовать, или кто-то другой -- я не могу повлиять. Мне просто было что сказать.

Sign up to leave a comment.

Articles