Update img-optimize
* avif support
This commit is contained in:
parent
cbe45eea8e
commit
5e1c6d1da2
|
@ -6,14 +6,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [V2.0] - 2020-11-10
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- quiet mode
|
- quiet mode
|
||||||
- option --no-run-if-empty added to xargs
|
- option --no-run-if-empty added to xargs
|
||||||
- scripts to compile optipng & libwebp from source
|
- scripts to compile optipng & libwebp from source
|
||||||
|
- Avif (AV1 Image Format) support
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
- JPG are optimized as progressive JPG
|
||||||
|
- WebP and Avif newly created images are deleted in case of failure during conversion
|
||||||
|
|
||||||
## [V1.1] - 2019-04-05
|
## [V1.1] - 2019-04-05
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
12
README.md
12
README.md
|
@ -9,6 +9,7 @@
|
||||||
- jpegoptim for jpg optimization
|
- jpegoptim for jpg optimization
|
||||||
- optipng for png optimization
|
- optipng for png optimization
|
||||||
- cwebp for WebP conversion
|
- cwebp for WebP conversion
|
||||||
|
- go-avif for Avif conversion
|
||||||
|
|
||||||
### From APT repositories
|
### From APT repositories
|
||||||
|
|
||||||
|
@ -36,6 +37,13 @@ curl -sL git.io/fjddn | sudo -E bash
|
||||||
curl -sL git.io/fjdd6 | sudo -E bash
|
curl -sL git.io/fjdd6 | sudo -E bash
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Go-Avif installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo wget -qO /usr/local/bin/avif https://github.com/Kagami/go-avif/releases/download/v0.1.0/avif-linux-x64
|
||||||
|
sudo chmod +x /usr/local/bin/avif
|
||||||
|
```
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
@ -87,7 +95,7 @@ Examples:
|
||||||
img-optimize --jpg /var/www/images
|
img-optimize --jpg /var/www/images
|
||||||
```
|
```
|
||||||
|
|
||||||
## Update the script
|
### Update the script
|
||||||
|
|
||||||
To update the script, just run :
|
To update the script, just run :
|
||||||
|
|
||||||
|
@ -95,7 +103,7 @@ To update the script, just run :
|
||||||
git -C $HOME/.img-optimize pull
|
git -C $HOME/.img-optimize pull
|
||||||
```
|
```
|
||||||
|
|
||||||
## Setup daily cronjob
|
### Setup daily cronjob
|
||||||
|
|
||||||
You just have to copy the scripts to /etc/cron.daily :
|
You just have to copy the scripts to /etc/cron.daily :
|
||||||
|
|
||||||
|
|
25
optimize.sh
25
optimize.sh
|
@ -7,7 +7,7 @@
|
||||||
# Author: VirtuBox
|
# Author: VirtuBox
|
||||||
# License: M.I.T
|
# License: M.I.T
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Version 1.2 - 2020-10-18
|
# Version 2.0 - 2020-11-10
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
CSI='\033['
|
CSI='\033['
|
||||||
|
@ -28,8 +28,9 @@ _help() {
|
||||||
echo " --png ..... optimize all png images"
|
echo " --png ..... optimize all png images"
|
||||||
echo " --webp ..... convert all images in webp"
|
echo " --webp ..... convert all images in webp"
|
||||||
echo " --avif ..... convert all images in avif"
|
echo " --avif ..... convert all images in avif"
|
||||||
echo " --nowebp ..... optimize all png & jpg images"
|
echo " --std ..... optimize all png & jpg images"
|
||||||
echo " --all ..... optimize all images (png + jpg + webp +avif)"
|
echo " --next ..... convert all images in webp & avif"
|
||||||
|
echo " --all ..... optimize all images (png + jpg + webp + avif)"
|
||||||
echo " -i, --interactive ..... run img-optimize in interactive mode"
|
echo " -i, --interactive ..... run img-optimize in interactive mode"
|
||||||
echo " -q, --quiet ..... run image optimization quietly"
|
echo " -q, --quiet ..... run image optimization quietly"
|
||||||
echo " --path <images path> ..... define images path"
|
echo " --path <images path> ..... define images path"
|
||||||
|
@ -61,11 +62,15 @@ else
|
||||||
--png)
|
--png)
|
||||||
PNG_OPTIMIZATION="y"
|
PNG_OPTIMIZATION="y"
|
||||||
;;
|
;;
|
||||||
--nowebp)
|
--std)
|
||||||
JPG_OPTIMIZATION="y"
|
JPG_OPTIMIZATION="y"
|
||||||
PNG_OPTIMIZATION="y"
|
PNG_OPTIMIZATION="y"
|
||||||
WEBP_OPTIMIZATION="n"
|
WEBP_OPTIMIZATION="n"
|
||||||
|
AVIF_OPTIMIZATION="n"
|
||||||
;;
|
;;
|
||||||
|
--next)
|
||||||
|
AVIF_OPTIMIZATION="y"
|
||||||
|
WEBP_OPTIMIZATION="y"
|
||||||
--webp)
|
--webp)
|
||||||
WEBP_OPTIMIZATION="y"
|
WEBP_OPTIMIZATION="y"
|
||||||
;;
|
;;
|
||||||
|
@ -173,9 +178,9 @@ if [ "$JPG_OPTIMIZATION" = "y" ]; then
|
||||||
echo -ne ' jpg optimization [..]\r'
|
echo -ne ' jpg optimization [..]\r'
|
||||||
cd "$IMG_PATH" || exit 1
|
cd "$IMG_PATH" || exit 1
|
||||||
if [ -n "$FIND_ARGS" ]; then
|
if [ -n "$FIND_ARGS" ]; then
|
||||||
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -cmin "$FIND_ARGS" -print0 | xargs -r -0 jpegoptim "$JPG_ARGS" --preserve --strip-all -m82
|
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -cmin "$FIND_ARGS" -print0 | xargs -r -0 jpegoptim "$JPG_ARGS" -p -s --all-progressive -m82
|
||||||
else
|
else
|
||||||
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -r -0 jpegoptim "$JPG_ARGS" --preserve --strip-all -m82
|
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -r -0 jpegoptim "$JPG_ARGS" -p -s -m82 --all-progressive
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -ne " jpg optimization [${CGREEN}OK${CEND}]\\r"
|
echo -ne " jpg optimization [${CGREEN}OK${CEND}]\\r"
|
||||||
|
@ -221,10 +226,10 @@ if [ "$WEBP_OPTIMIZATION" = "y" ]; then
|
||||||
cd "$IMG_PATH" || exit 1
|
cd "$IMG_PATH" || exit 1
|
||||||
if [ -n "$FIND_ARGS" ]; then
|
if [ -n "$FIND_ARGS" ]; then
|
||||||
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -cmin "$FIND_ARGS" -print0 | xargs -0 -r -I {} \
|
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -cmin "$FIND_ARGS" -print0 | xargs -0 -r -I {} \
|
||||||
bash -c "[ ! -f '{}.webp' ] && { cwebp $WEBP_ARGS -q 82 -mt '{}' -o '{}.webp'; }"
|
bash -c "[ ! -f '{}.webp' ] && { cwebp $WEBP_ARGS -q 82 -mt '{}' -o '{}.webp || rm -f '{}.webp''; }"
|
||||||
else
|
else
|
||||||
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -r -I {} \
|
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" \) -print0 | xargs -0 -r -I {} \
|
||||||
bash -c "[ ! -f '{}.webp' ] && { cwebp $WEBP_ARGS -q 82 -mt '{}' -o '{}.webp'; }"
|
bash -c "[ ! -f '{}.webp' ] && { cwebp $WEBP_ARGS -q 82 -mt '{}' -o '{}.webp' || rm -f '{}.webp'; }"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -ne " jpg to webp conversion [${CGREEN}OK${CEND}]\\r"
|
echo -ne " jpg to webp conversion [${CGREEN}OK${CEND}]\\r"
|
||||||
|
@ -235,7 +240,7 @@ if [ "$AVIF_OPTIMIZATION" = "y" ]; then
|
||||||
echo "Error: avif isn't installed"
|
echo "Error: avif isn't installed"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
# convert png to webp
|
# convert png to avif
|
||||||
echo -ne ' png to avif conversion [..]\r'
|
echo -ne ' png to avif conversion [..]\r'
|
||||||
cd "$IMG_PATH" || exit 1
|
cd "$IMG_PATH" || exit 1
|
||||||
if [ -n "$FIND_ARGS" ]; then
|
if [ -n "$FIND_ARGS" ]; then
|
||||||
|
@ -248,7 +253,7 @@ if [ "$AVIF_OPTIMIZATION" = "y" ]; then
|
||||||
echo -ne " png to avif conversion [${CGREEN}OK${CEND}]\\r"
|
echo -ne " png to avif conversion [${CGREEN}OK${CEND}]\\r"
|
||||||
echo -ne '\n'
|
echo -ne '\n'
|
||||||
|
|
||||||
# convert jpg to webp
|
# convert jpg to avif
|
||||||
echo -ne ' jpg to avif conversion [..]\r'
|
echo -ne ' jpg to avif conversion [..]\r'
|
||||||
cd "$IMG_PATH" || exit 1
|
cd "$IMG_PATH" || exit 1
|
||||||
if [ -n "$FIND_ARGS" ]; then
|
if [ -n "$FIND_ARGS" ]; then
|
||||||
|
|
Loading…
Reference in New Issue
Block a user