LINUX.ORG.RU

Конвертирование изображения в матрицу или строгий ASCII


0

1

Как можно отконвертировать изображение в матрицу вида:

00FF11 33EE55 GG3311
33EE55 GG3311 00FF11
GG3311 33EE55 00FF11

или ASCII в котором каждый символ соответствует определенному цвету.

16 цветов вполне хватит.

man XPM

Это обыкновенный текстовый файл. Если нужна только матрица изображения - она легко извлекается текстовым редактором, grep'ом, sed'ом.

ImageMagick, GIMP.

E ★★★
()

А что значит «GG»? А так, преобразуйте в plain ppm (P3), «заглатывайте» в bash и выводите через printf.

mky ★★★★★
()
Ответ на: комментарий от steemandlinux

А руки откуда надо растут?) Как вариант python/PIL (или переименована, не помню), да и если очень хочется можно свой велосипед написать на любом удобном языке.

anonymous
()
Ответ на: комментарий от steemandlinux

Далеко не всегда, кстати, я так и не понял, от чего это зависит. Есть ещё GIMP. Есть ещё утилиты типа pngtoxpm. Можно даже онлайн.

E ★★★
()
Ответ на: комментарий от mky

FF хотел написал, промахнулся.

pcregrep -nM «153\n131\n107\n152\n128\n102\n160\n136» test.ppm 1228961:153 2250317:153 2704907:153 3367763:153 3602531:153 3831023:153 4051343:153 4283891:153 4583723:153 5332679:153 5631887:153

Работает как надо :)

Единственное вопрос. Как заставить imagemagick ставить перенос после каждого канала (как у гимпа), а то приходится пробелы на ньюлайны заменять после конвертирования.

steemandlinux ★★★★★
() автор топика
Ответ на: комментарий от steemandlinux

Не знаю, как заставить imagemagick. Но лично я бы заменял пробелы на перевод строк, причем с обработкой и подряд идущих пробелов, на случай обновления imagemagick, потому что формат разрешает ставить пробелы/переводы строк как угодно и привязываться к конкретной реализации (как у гимпа) не стоит.

mky ★★★★★
()
Ответ на: комментарий от mky

Гимп как раз заменяет пробелы на переводы строк.

steemandlinux ★★★★★
() автор топика
Ответ на: комментарий от mky

Я pnm.c пофиксил, теперь строчка = пиксель выводится.

steemandlinux ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.