Batch Converting Image Files

From Littledamien Wiki
Jump to navigation Jump to search

Converting file formats[edit]

Use ffmpeg.

If ffmpeg is not available on the command line, install with brew install ffmpeg.

Batch convert webp to jpg[edit]

$ for i in *.webp; do ffmpeg -i "$i" "{i%.webp}.jpg"; done

Find and convert webp files recursively:

$ find . -iname '*.webp' -exec bash -c 'ffmpeg -y -i "$1" "${1%.*}.jpg"' _ {} \;

Batch convert png to jpg and scaling images proportionally[edit]

The scale=1024:-1 tells ffmpeg to scale the images to 1024 pixels wide. The height will be scaled proportionally. To scale to a consistent height of 800 pixels, scale=-1:800.

$ for i in *.png; do ffmpeg -i "$i" -vf scale=1024:-1 "converted/${i%.*}.jpg"; done

Batch renaming files[edit]

Use rename which can be installed with brew install rename.

In the following example, the -n option indicates "dry run" for testing purposes. The -e option indicates the regex pattern that should be applied.

$ for i in *.png; do rename -n -e 's/foo(\d\d)_/bar$1/g'; done

See also[edit]