blob: 30ff1efa8a65c1b124f54fd9c005318e445fdaec (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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
|