Làm thế nào để có được pngcrush để ghi đè lên các tập tin gốc?


15

Tôi đã đọc qua man pngcrushvà dường như không có cách nào để nghiền nát tệp PNG và lưu nó so với bản gốc. Tôi muốn nén một số thư mục có giá trị của PNG để có thể thực hiện tất cả chỉ với một lệnh!

Hiện tại tôi đang làm pngcrush -q -d tmp *.pngsau đó cắt thủ công các tập tin từ tmpthư mục đến thư mục gốc. Vì vậy, tôi đoán sử dụng mvcó thể là cách tốt nhất để đi? Còn ý tưởng nào hay hơn không?

Câu trả lời:


17

Tất cả trên một dòng:

for file in *.png; do pngcrush "$file" "${file%.png}-crushed.png" && mv "${file%.png}-crushed.png" "$file"; done

Hãy làm nó.

(Mặc dù cho đến nay trong các thử nghiệm của riêng tôi, chưa đến một nửa số png tôi đã thử nghiệm pngcrushnhỏ hơn sau đó, vì vậy màu sắc của tôi không ấn tượng.)


Cảm ơn! Số lượng bạn có thể nén các PNG có thể phụ thuộc vào cách chúng được tạo ra. Tôi tin rằng "Save for Web" của Photoshop có một số dạng máy nghiền PNG được tích hợp.
DisgruntledGoat 17/211

Hầu hết của tôi đã được tạo bằng lệnh nhập của ImageMagick. Tôi tránh phần mềm thương mại như Photoshop bất cứ khi nào có thể.
frabjous

4
sử dụng -brute để nén tốt hơn.
Collin Anderson

1
Các câu trả lời khác tại là tốt hơn với pngcrush mới hơn.
Hugo

22

Kể từ phiên bản 1.7.22, pngcrushcó tùy chọn ghi đè.

Thử

pngcrush -ow file.png

Xem Changelog để biết thêm thông tin:

Version 1.7.22  (built with libpng-1.5.6 and zlib-1.2.5)
  Added "-ow" (overwrite) option.  The input file is overwritten and the
    output file is just used temporarily and removed after it is copied
    over the input file..  If you do not specify an output file, "pngout.png"
    is used as the temporary file. Caution: the temporary file must be on
    the same filesystem as the input file.  Contributed by a group of students
    of the University of Paris who were taking the "Understanding of Programs"
    course and wished to gain familiarity with an open-source program.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.