aboutsummaryrefslogtreecommitdiff
path: root/tools/_colorFixer.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/_colorFixer.sh')
-rwxr-xr-xtools/_colorFixer.sh48
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