-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptimiseImages.sh
More file actions
executable file
·86 lines (76 loc) · 2.16 KB
/
Copy pathoptimiseImages.sh
File metadata and controls
executable file
·86 lines (76 loc) · 2.16 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/bin/bash
curDir=$(pwd|rev|cut -d "/" -f1 |rev)
ConvertDir="../${curDir}Converted"
CORES=$(nproc)
# If you want it faster :D
factor=4
let CORES=$CORES*$factor
numJpg=$(find -iname "*.jpg" -type f| grep -v Unoptimized | wc -l)
optJpg=$(find $ConvertDir -iname "*.jpg" -type f | wc -l)
numPng=$(find -iname "*.png" -type f| grep -v Unoptimized | wc -l)
optPng=$(find $ConvertDir -iname "*.png" -type f | wc -l)
mkdir -p $ConvertDir
# ls $ConvertDir
#right settings for printf
export LC_NUMERIC="en_US.UTF-8"
#echo "$((optJpg*100 / numJpg))"
optimiseJpg() {
for i in $(find . -iname "*.jpg" -type f | grep -v Unoptimized)
do
name=$(echo $i|cut -d "/" -f2-)
if [ ! -d $(dirname $ConvertDir/$name) ]
then
mkdir -p $(dirname $ConvertDir/$name)
fi
load=$(ps aux | grep guetzli | wc -l)
let load=$load-1
while [[ $load -ge $CORES ]]
do
load=$(ps aux | grep guetzli | wc -l)
let load=$load-1
printf "load to high ($load) status: $((optJpg*100/numJpg)) percent of jpg\r"
sleep 0.1
done
if [ ! -f $ConvertDir/$name ]
then
#echo guetzli --nomemlimit $i $ConvertDir/$name
echo "optimizing $name in $(dirname $i)"
guetzli --nomemlimit $i $ConvertDir/$name&
let optJpg=$optJpg+1
fi
done
}
optimisePng() {
for i in $(find . -iname "*.png" -type f | grep -v Unoptimized)
do
name=$(echo $i|cut -d "/" -f2-)
if [ ! -d $(dirname $ConvertDir/$name) ]
then
mkdir -p $(dirname $ConvertDir/$name)
fi
# use all cores equally
load=$(ps aux | grep guetzli | wc -l)
let load=$load-1 # one line additional false pos.
while [[ $load -ge $CORES ]]
do
load=$(ps aux | grep guetzli | wc -l)
let load=$load-1
printf "load to high ($load) status: $((optPng*100/numPng)) percent of png\r"
sleep 0.1
done
if [ ! -f $ConvertDir/$name ]
then
#echo pngquant --skip-if-larger -o $ConvertDir/$name --strip 256 $i
echo "optimizing $name in $(dirname $i)"
pngquant --skip-if-larger -o $ConvertDir/$name --strip 256 $i
let optPng=$optPng+1
fi
done
}
#echo "Want to do optimisation?"
optimiseJpg
optimisePng
echo "unconverted:"
du -sh ./
echo "converted:"
du -sh $ConvertDir