Нарезать и переставлять длинные тощие изображения, чтобы они помещались на экране

У меня есть много изображений размером примерно 10000 x 40 пикселей, которые визуализируют графики, которые в основном представляют собой цепочки с несколькими шпорами и другими "украшениями". (Они сделаны по трубопроводу OpenFST fstdraw через графвиз dot).

Из командной строки, как я могу автоматически перегруппировать одно из этих тощих изображений, чтобы они легко помещались на экране 1920x1080? Например, разделите изображение на части длиной не более 1920 пикселей, а затем сложите их вертикально.

Что-то с помощью ImageMagick's convert -crop в петле?

Вот что не получается:

  • Замена dot с одной из своих сестер neato, fdpи т.д. по крайней мере fdp выводит не тощее изображение, но только потому, что тощий график случайным образом изгибается и перекрывается, как чертова хромосома. Изображение по-прежнему в основном белое, надписи нечитаемо крошечные, а структура - просто волнистая.

  • Добавление опции ratio=1 в dotВвод просто прокладки от 10000х40 до 10000х10000.

1 ответ

Поскольку 10000/1920 округляет до 6, разбейте входные данные на 6 частей слева направо и склейте их вместе сверху вниз. Вместо использования 6 промежуточных файлов используйте формат, который содержит несколько изображений (tiff намного быстрее, чем gif), а также stdin и stdout.

convert in.png -crop 6x1@ +repage tiff:- | convert tiff:- -append out.png

Другие вопросы по тегам