diff options
Diffstat (limited to 'tools/_colorFixer.sh')
-rwxr-xr-x | tools/_colorFixer.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tools/_colorFixer.sh b/tools/_colorFixer.sh new file mode 100755 index 000000000..30ff1efa8 --- /dev/null +++ b/tools/_colorFixer.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +paletteColors=($(cat "$DIR/paletteColors")) + +function findNearestColor { + rgb1=($(grep -o -P '(\d+(.\d+)?)(?=%)' <<< $1)) + r1=${rgb1[0]} + g1=${rgb1[1]} + b1=${rgb1[2]} + + smallerDistance=173 + bestColor='' + + for paletteColor in ${paletteColors[@]} + do + rgb2=($(grep -o -P '(\d+(.\d+)?)(?=%)' <<< $paletteColor)) + r2=${rgb2[0]} + g2=${rgb2[1]} + b2=${rgb2[2]} + distance=$(echo "scale=3;sqrt(($r2-$r1)^2 + ($g2-$g1)^2 + ($b2-$b1)^2)" | bc) + if (( $(echo $distance'<'$smallerDistance | bc) )) + then + smallerDistance=$distance + bestColor=$paletteColor + fi + done + + echo $bestColor +} + + +for file in $(find -name "$1" -maxdepth 1 -type f -printf "%f\n") +do + echo =================================================== + echo $file + svg=$(cat $file) + file_colors=$(grep -o -P 'rgb\((\d+(.\d+)?%,?){3}\)' $file) + for file_color in $file_colors + do + new_color=$(findNearestColor $file_color) + echo $file_color '->' $new_color + + svg=$(sed "s/$file_color/$new_color/g" <<< $svg) + done + echo $svg > $file +done |