Отримайте кількість тифів у мульти-тифі з командним рядком ImageMagick?


4

Чи є спосіб отримати кількість тифів у мульти-тифі з утилітою командного рядка в ImageMagick?

Те, що я хочу зробити, - це витягнути (розділити) мульти-тиф на окремі файли. Однак якщо tiff містить лише один tiff (не є багатотиповим), я б хотів взагалі нічого не робити ... Також якщо я використовую "% d" -опцію для назви вихідних файлів, я отримую "% d "у назві файлу, якщо воно лише одне.

... чи є інший спосіб використовувати ImageMagick, щоб уникнути дивних імен файлів при перетворенні?

Відповіді:


3

Ви можете повернути кількість сторінок у тифі, використовуючи identify -format "%p" multipage.tif.


1
Цікаво! Спробував і повернувся: 12345678910111213141516171819202122, якщо мій тиф вміщує 22 зображення. Не зовсім те, що я очікував, але буду розслідувати більше ...
Андерс

Гммм ..... У мене немає багатосторінкового тифу, щоб спробувати це. Яку версію чату ви використовуєте? На якій ОС?
DaveParillo

Я спробував 32-бітну версію чату 6.6.1-2 Q8 та Q16 на 32-розрядної версії Windows XP та 64-бітної Windows 7. Я також спробував 64-бітний IM 6.6.1-2 на Windows 7 64-розрядний. Усі генерують той самий вихід із запропонованою командою.
Андерс

3
Я знайшов документацію для рядків у варіанті формату (доступний на imagemagick.org). % p відображає сторінки, а% n відображає кількість сцен, що саме я шукав. Команда, яку я буду використовувати, це: ідентифікувати -format "% n" багатосторінковий.tif.
Андерс

6

Коротше, ніж усі інші:

identify multipage.tif | wc -l

Для мене працює ... навіть коли жоден із -formatваріантів не дає жодного результату. Слід зазначити, що причина цього спрацьовує навіть тоді, коли identifyвиводить безліч повідомлень про помилки ( без |wc -l ), тому, що помилки записуються stderrі wcчитаються лишеstdout
Ламбарт

@Lambart: wcчитає stdin, ні stdout. Саме труба з’єднує stdoutвід першого до stdinдругого. Є й інші труби.
Роберт Сімер

@RobertSiemer добре уточнений, дякую
Ламбарт

1

Для підрахунку кількості сторінок у TIFF-файлі можна використовувати наступне:

tiffinfo output_file_name.tif | grep "Page Number" | grep -c "P"

tiffinfoдля мене нова. Цікава утиліта, але вона не в змозі виявити жодне друге зображення в TIFF, з яким я працюю ... також для 80 Мб TIFF він генерує 345 Мб виходу.
Ламбарт

0

identify multipage.tif | wc -l

(-формат "% p" або% n дав нечіткі результати для мене)


0

Поєднано з наданих відповідей (використовуючи -format та wc для підрахунку):

identify -format "%p " multipage.tif | wc -w

І лише згадати ... це номери сторінок, які ми отримуємо (1 для 1 сторінки, 1 для 2 сторінок, 1 2 для 3 сторінок і 1 2 3 ... 19 20 21 22 для 22 сторінок)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.