2013-10-03 19 views
46

Tôi đang tìm kiếm công cụ tốt nhất để nén hình ảnh (png và jpeg) qua dòng lệnh.
Sau khi googling tôi tìm thấy cắt dán mà là tốt như nó nén cả png và jepeg, nhưng tỷ lệ nén là rất nghèo trong trường hợp này.Công cụ nén hình ảnh qua dòng lệnh

Tôi đã xem công cụ trực tuyến jpeg-optimizer.com công cụ trực tuyến hoạt động tốt hơn cắt xén. Bất kỳ ai có thể giúp đỡ để tìm công cụ phù hợp cho việc này.

Trả lời

32

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:

  1. 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
  2. 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.

+1

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) –

+0

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

+0

@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. –

9

Nếu bạn đang trên Linux, hãy thử mogrify công cụ từ imagemagick bộ

Nó là khá tiện dụng trên dòng lệnh.

Ex:

mogrify -resize 50% rose.jpg

mogrify -format jpg *.png 
+0

Hoặc thử ngã ba nhanh hơn: http://www.graphicsmagick.org/ –

Các vấn đề liên quan