by Devin Yang

建立於: 8個月前 ( 更新: 8個月前 )

這版算是我後來的進化版本了,可用Docker跑ubuntu即可安裝如下套件
如果你的容器環境使用 phpenv 安裝上應該也不會有問題

sudo apt install imagemagick webp

如果您的環境並不是ubuntu,我們可以透過docker掛載的方式輕鬆達成,參考指令如下:

docker run --rm -v $(pwd):/mnt -w /mnt -ti ubuntu bash

以下是我使用的bash,主要針對jpg及png進行優化,檔案的顏色可能會略為失真,請在測試站上確認符合您自己的預期 

#!/bin/bash
SIZE=600
for o in $(find . -name *.jpg  -not -regex '.*orignal_.*\.*'  -type f -size +${SIZE})
do
	FILENAME=$(basename "${o}")
	FOLDER=$(dirname -- $(realpath -- ${o}))
	echo $FOLDER
	TARGET="${FOLDER}/orignal_${FILENAME}"
	if [ ! -f $TARGET ];then
		echo "backup orignal ${FILENAME}"
		cp "${o}" "${TARGET}"
		WxH=$(identify ${o}|awk '{print $3}')
		#convert  ${o} -quality 80 -resize ${WxH} -strip $o
		convert  ${o} -quality 80 -resize 800x\> -strip $o
	else
		echo "Skip ${FILENAME}"
	fi
done

for o in $(find . -name *.png -not -regex '.*orignal_.*\.*' -type f -size +${SIZE})
do
	FILENAME=$(basename "${o}")
	FOLDER=$(dirname -- $(realpath -- ${o}))
	echo $FOLDER
	TARGET="${FOLDER}/orignal_${FILENAME}"
	if [ ! -f $TARGET ];then
		echo "backup orignal ${FILENAME}"
		cp "${o}" "${TARGET}"
		WxH=$(identify ${o}|awk '{print $3}')
		#convert  ${o} -quality 85 -resize ${WxH} -strip $o
		convert  ${o} -quality 85 -resize 800x\> -strip $o
	else
		echo "Skip ${FILENAME}"
	fi
done

主要參數說明,從bash中不難了解在進行convert轉換前我會先備一份起來,並且prefix命名為orignal_。

-quality調高顏色會更接近原色。
-resize這裡代表如果寬超出800px的圖,最大就縮到800px

在此提供另一個刪除orgnal_檔案供參考,刪除目錄下包含所有子目錄,名稱為original_開頭,類型為檔案的資料。

find . -name original_* -type f -delete

Tags: seo linux

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


linux

haproxy 1.8.9編譯記錄

記錄在Ubuntu下編譯haproxy 1.8.9過程。

linux

ubuntu找不到add-apt-repository指令

ubuntu找不到add-apt-repository指令

linux,mac

MacOS或Linux上的密碼產生器

有時侯我們需要產生一個隨機的密碼,但是想破頭不知用什麼好? 這裡提供一個簡單的bash讓我們輕易的產生一組密碼在終端機上。