sh 用于转换图像颜色的Bash脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 用于转换图像颜色的Bash脚本相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env bash

echo "Total arguments: $#"
if [ $# -ne 4 ]; then
    echo "This script requires 4 arguments. Sample usage:"
    echo "sh script.sh [fromHexColor] [toHexColor] [complete srcPath without trailing slash] [complete destPath without trailing slash]"
    echo "sh script.sh 7282d9 2B5676 /src/path /dest/path"
    echo -e "------------------\n"
    exit 1
fi

fromColor="#$1"
toColor="#$2"

inputDir=$3
fileType="png"
resultDir=$4

for file in ${inputDir}/**/*.${fileType} ${inputDir}/*.${fileType}; do

    echo "File: ${file}"

#   get file name from input path
    filename=`echo $(basename ${file})`
    echo "Filename: ${filename}"

#   get relative base directory from input path

    filedir=`echo $(dirname ${file})`
    echo "File dir: ${filedir}"

    relativeBaseDir=`echo ${filedir#${inputDir}}`
    echo "Relative base: ${relativeBaseDir}"


#   create relative base directory from result path if it is not empty

    outputDir="${resultDir}"
    if [ ${#relativeBaseDir} -eq 0 ]; then
        echo "empty"
    else
        outputDir=${resultDir}${relativeBaseDir}

        echo "creating directory $outputDir"
        mkdir -p ${outputDir}
    fi

#   perform convert command
    convert ${file} -fuzz 30% -fill "$toColor" -opaque "$fromColor" ${outputDir}/${filename};
    echo -e "${outputDir}/${filename}\n"

done

以上是关于sh 用于转换图像颜色的Bash脚本的主要内容,如果未能解决你的问题,请参考以下文章

sh Bash脚本根据exif数据和文件时间戳移动图像

sh Cleaner.sh - 用于清理目录内容的Bash脚本

sh 用于执行构建的bash脚本

sh 用于执行构建的bash脚本

sh bash插入用于编写脚本的哈希符号

sh 用于快速设置Golang环境的Bash脚本