-
Notifications
You must be signed in to change notification settings - Fork 3
/
convert.bash
29 lines (28 loc) · 1.14 KB
/
convert.bash
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
function convert_heic_at_folder_to_jpg() {
if test -n "*.heic"; then
for file in *.heic; do convert $file ${file/%.heic/.jpg}; done
else
log_msg "no .heic file at dir"
fi
}
function convert_pptx_to_compressed_images_pptx() {
: ${1?"Usage: ${FUNCNAME[0]} <pptx_file>"}
# https://dev.to/feldroy/til-strategies-for-compressing-jpg-files-with-imagemagick-5fn9
[[ -d /tmp/pptx_extracted ]] && rm -rf /tmp/pptx_extracted/
[[ -d ${1%.*}-compressed.pptx ]] && rm -rf ${1%.*}-compressed.pptx
unzip -q "$1" -d /tmp/pptx_extracted
local large_images=$(find /tmp/pptx_extracted/ppt/media -type f -size +500k -name '*.jpg' -o -name '*.png' -o -name '*.jpeg')
local mogrigfy_params="-sampling-factor 4:2:0 -quality 50 -strip"
[[ -z $large_images ]] && log_msg "no large images" && return
for image in $large_images; do
log_msg "compressing $(basename $image)"
mogrify $mogrigfy_params $image
done
# create file
local cwd=$(pwd)
(
cd /tmp/pptx_extracted/
log_msg "creating "$cwd/${1%.*}-compressed.pptx""
zip -9 -q -r "$cwd/${1%.*}-compressed.pptx" *
)
}