Можно ли сделать так, чтобы опция формата '% [fx: ...]' сама по себе использовала формат чисел c?
Да и Нет. При разборе %[fx: ... ]
формат, ImageMagick сохраняет результат как double
тип данных. Это значение будет передано в метод stdlib vsnprintf()
в формате %.*g
. В результате получится научная нотация c для «крайних» чисел.
Для части «да». Поскольку вы работаете с двумя целыми числами без знака (w*h
), вы можете подделать поведение vnsprintf()
, установив оператор точности в ImageMagick.
identify -precision 32 -format "%[fx:w*h]\n" example-large.jpg
Однако это не так " исправление ". Это может не всегда работать между системами, и настройка общей точности может иметь непредвиденные побочные эффекты.
Для части «нет». Может быть более практичным и надежным использовать внешнюю утилиту для форматирования результатов в формат, которым вы можете управлять.
printf "%.f" $(identify -format "%[fx:w*h]" example-large.jpg)
Правда, это неудобно, но быстрый поиск по запросу " [bash] scientifi c нотация"предлагает множество альтернативных способов, поскольку это обычная задача.