Tôi đang sử dụng các công cụ sau đây để thực hiện lossless nén ảnh:
Đối với mỗi chương trình, tôi đã tạo hai lối tắt:
- Phương thức nén thực tế và hiển thị kích thước tệp của cả hai tệp
- Một tệp thay thế tệp gốc bằng tệp nén (Nếu tôi hài lòng, tôi sẽ làm mũi tên lên, tiền tố trước đó của tôi lệnh bằng "m" và nhấn enter).
Tôi đã đặt này trong .bashrc
tôi:
# Image optimization tools
png() {
pngcrush -brute "$1"{,.} && du -b "$1"{,.}
}
gif() {
gifsicle -O "$1" -o "$1." && du -b "$1"{,.}
}
jpeg() {
jpegtran "$1" > "$1." && du -b "$1"{,.}
}
# Just for easy access in history
mpng() {
mv "$1"{.,}
}
mgif() {
newsize=$(wc -c <"$1.")
oldsize=$(wc -c <"$1")
if [ $oldsize -gt $newsize ] ; then
mv "$1"{.,}
else
rm "$1."
fi
}
mjpeg() {
mv "$1"{.,}
}
Lưu ý: pngcrush -brute
là rất dài dòng. Chuyển hướng đầu ra đến /dev/null
nếu bạn không quan tâm đến tiến trình.
Nguồn
2013-10-11 21:20:41
gifsicle chỉ bắt đầu tối ưu hóa với 'cờ -O3' trong một thông cáo mới (không có sẵn trên' apt' hiện tại) - xem [phát hành 1.82.1] (https: // github.com/pornel/giflossy/release) (thay thế nhị phân '/ usr/bin/gifsicle' của bạn thành dạng thích hợp). Các lưu ý của tôi về tối ưu hóa gif với nó là [ở đây] (https://github.com/lmmx/devnotes/wiki/Gif-terminal-manipulation) –
Lệnh 'jpegtran' của bạn dường như chẳng làm gì cả, nó dẫn đến một tệp có cùng kích thước. Tại sao bạn không có tùy chọn nào được chỉ định? – Anonymous
@jphollowed 'jpegtran' tối ưu hóa theo mặc định. Nếu tập tin không thay đổi, thì jpegtran không thể giảm kích thước theo cách không bị mất. –