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

273
Camille Goudeseune

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

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

Что-то с использованием ImageMagick convert -cropв цикле?

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

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

  • Добавление этой опции ratio=1к dotвводу просто добавляет значения от 10000x40 до 10000x10000.

2

1 ответ на вопрос

1
Camille Goudeseune

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

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

Похожие вопросы