ค้นหาไฟล์ gif ที่เคลื่อนไหวทั้งหมดในไดเรกทอรีและไดเรกทอรีย่อย


12

สมมติว่าฉันค้นหา.gifไฟล์เสร็จแล้วและได้ไฟล์กลับมามากมาย ตอนนี้ผมต้องการที่จะทดสอบพวกเขาเพื่อดูว่าพวกเขามีความเคลื่อนไหว GIFs ฉันสามารถทำได้ผ่านบรรทัดคำสั่งหรือไม่

ฉันได้อัปโหลดตัวอย่างสองสามตัวอย่างต่อไปนี้ในกรณีที่คุณต้องการทดลองใช้

ภาพเคลื่อนไหว GIF

ภาพเคลื่อนไหว gif

รูปภาพ GIF แบบคงที่

ภาพ GIF แบบคงที่

คำตอบ:


22

สามารถทำได้อย่างง่ายดายโดยใช้ImageMagick

identify -format '%n %i\n' -- *.gif

12 animated.gif
1 non_animated.gif

identify -format %nพิมพ์จำนวนเฟรมใน gif; สำหรับ gif แบบเคลื่อนไหวจำนวนนี้จะมากกว่า 1

(ImageMagick นั้นมีอยู่ในที่เก็บของ distro ของคุณเพื่อให้ติดตั้งได้ง่าย)


สมบูรณ์แบบขอบคุณ - ฉันติดตั้ง ImageMagick ไว้แล้ว
Max Williams

9

การใช้exiftool:

exiftool -q -if '$framecount > 1' -p '$directory/$filename' -r -ext:gif .

จะรายงานเส้นทางของไฟล์ GIF ที่มีมากกว่าหนึ่งเฟรม (ในไดเรกทอรีปัจจุบันซ้ำ)


5

อีกวิธีด้วยการimใช้fxโอเปอเรเตอร์:

find . -type f -name \*.gif -exec sh -c \
'identify -format "%[fx:n>1]\n" "$0" | grep -q 1' {} \; -print

นี่จะค้นหาไดเร็กทอรีปัจจุบันและไดเร็กทอรีย่อยเพื่อหา.gifอิมเมจที่รันคำสั่งเชลล์สำหรับแต่ละไฟล์ที่.gifพบ หากจำนวนเฟรมn>1แล้วfxพิมพ์มิฉะนั้นจะพิมพ์1 0สิ่งนี้ถูกไพพ์ไปที่grep -q 1ดังนั้น-printจะถูกดำเนินการเฉพาะเมื่อก่อนหน้า-execนี้สำเร็จ

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