bin/heic-conv-all @ a945ff0fd02f

More
author Steve Losh <steve@stevelosh.com>
date Fri, 16 Feb 2024 14:12:21 -0500
parents c4bb62cd1c7f
children (none)
#!/bin/bash

# from https://github.com/lokarithm/HandyBashCommands/blob/main/heic-converter/heic-converter.sh

if ! command -v heif-convert &> /dev/null
then
    echo "heif-convert COMMAND could not be found."
    echo "Please install 'libheif-examples' first."
    echo "To install 'libheif-examples', run the following command:"
    echo "  sudo apt install libheif-examples"
    exit
else
    fileExtension="jpg"

    while getopts :p flag; do
        case ${flag} in
            # -p flag: convert heic files to png format instead
            p) fileExtension="png"
            ;;
        esac
    done

    start_time=$(date +%s.%3N)

    # look for files in current path that contains ".heic" in a case-insensitive manner
    for file in $( ls | grep -iF ".heic")
    do
        echo "Converting file: $file"

        # file extension of current file
        currFileExtension=`echo $file | grep -iFo "heic"`
        sedCommand="s/${currFileExtension}/${fileExtension}/g;s/HEIC/${fileExtension}/g"

        #replace original file name by changing the extension from heic to jpg
        outputFileName=`echo $file | sed -e $sedCommand`
        heif-convert $file $outputFileName
    done

    end_time=$(date +%s.%3N)

    elapsed=$(echo "scale=3; $end_time - $start_time" | bc)
    echo -e "\nElapsed time: \e[32m$elapsed \e[39mmilliseconds."

fi