Batch Converting Image Files

From Littledamien Wiki
Jump to navigation Jump to search

Converting file formats

Use ffmpeg.

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

Batch convert webp to jpg

$ 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

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

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