วิธีรับ pngcrush เพื่อเขียนทับไฟล์ต้นฉบับ?


15

ฉันได้อ่านมาman pngcrushแล้วและดูเหมือนว่าไม่มีทางที่จะบีบอัดไฟล์ PNG และบันทึกทับไฟล์ต้นฉบับ ฉันต้องการบีบอัดหลายโฟลเดอร์ที่มีค่า PNGs ดังนั้นมันจะมีประโยชน์ที่จะทำทุกอย่างด้วยคำสั่งเดียว!

ขณะนี้ฉันกำลังทำpngcrush -q -d tmp *.pngแล้วตัดไฟล์จากtmpไดเรกทอรีไปยังโฟลเดอร์ต้นฉบับด้วยตนเอง ดังนั้นฉันเดาว่าการใช้mvอาจเป็นวิธีที่ดีที่สุด มีความคิดที่ดีกว่านี้ไหม?

คำตอบ:


17

ทั้งหมดในบรรทัดเดียว:

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

ควรทำมัน

(ถึงตอนนี้ในการทดสอบของฉันเอง แต่น้อยกว่าครึ่งหนึ่งของ pngs ที่ฉันทดสอบpngcrushมีขนาดเล็กลงในภายหลังดังนั้นสีของฉันจึงไม่ถูกบีบอัด)


ขอบคุณ! จำนวนเงินที่คุณสามารถบีบอัด PNG ได้นั้นขึ้นอยู่กับวิธีการสร้าง PNG ฉันเชื่อว่า "Save for Web" ของ Photoshop มีรูปแบบของ PNG crusher ในตัว
DisgruntledGoat

เหมืองส่วนใหญ่ถูกสร้างขึ้นด้วยคำสั่งการนำเข้าของ ImageMagick ฉันหลีกเลี่ยงซอฟต์แวร์เชิงพาณิชย์เช่น Photoshop ทุกครั้งที่ทำได้
frabjous

4
ใช้ -brute เพื่อการบีบอัดที่ดีขึ้น
Collin Anderson

1
คำตอบอื่น ๆอยู่ในขณะนี้ดีขึ้นด้วย pngcrush ใหม่
Hugo

22

ตั้งแต่รุ่น 1.7.22 pngcrushมีตัวเลือกเขียนทับ

ลอง

pngcrush -ow file.png

ดูการเปลี่ยนแปลงสำหรับข้อมูลเพิ่มเติม:

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.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.