ฉันมี 5,000 ภาพที่ฉันต้องการบีบอัด (เพื่อแสดงบนเว็บไซต์ของฉัน)
ฉันใหม่สำหรับ Ubuntu แล้วฉันจะทำยังไงดี?
ฉันมี 5,000 ภาพที่ฉันต้องการบีบอัด (เพื่อแสดงบนเว็บไซต์ของฉัน)
ฉันใหม่สำหรับ Ubuntu แล้วฉันจะทำยังไงดี?
คำตอบ:
คำว่า "การบีบอัด" ดูเหมือนจะตีความผิดในคำถามนี้ แต่ก็ยังถูกต้องขึ้นอยู่กับบริบทที่คุณต้องการดู
มาพบกับนักออกแบบเว็บนักพัฒนาเว็บและ / หรือผู้เชี่ยวชาญด้านเว็บที่จำเป็นต้อง "บีบอัด" ไฟล์ภาพของเราเพื่อให้มีน้ำหนักเบาพอที่จะอัปโหลดไปยังโฮสติ้งของเราได้อย่างรวดเร็วหากเราทำงานโดยตรงในสภาพแวดล้อมการผลิตจริง ซึ่งจะไม่ส่งผลกระทบหากเราทำงานในสภาพแวดล้อมการผลิตทดสอบในท้องถิ่น
คำตอบหลายคำตอบดูเหมือนจะอ้างถึงสิ่งอื่น ๆ ซึ่งส่วนใหญ่เกิดจาก - อาจเป็นไปได้ - พวกเขาไม่ได้เผชิญกับทิวทัศน์ดังกล่าว นั่นเป็นเหตุผลที่ฉันเริ่มอธิบายเรื่องนี้
ดังนั้น. มาทำความเข้าใจกับสิ่งที่คำตอบต้องแก้:
ก่อนอื่นเรามาทำความเข้าใจว่า "ภาพที่มีน้ำหนักเบา" ควรเป็นอย่างไร
รูปภาพความละเอียดสูงที่มีความละเอียดมากกว่า 1024px อาจมีขนาดไฟล์ใหญ่ ฉันให้ตัวอย่างในภาพหน้าจอนี้:
ในหน้าต่างคุณสมบัติไฟล์เราจะเห็นว่านี่เป็นไฟล์ขนาด 9.5 MB ซึ่งจะล่าช้ามากในการอัปโหลดและจะล่าช้ามากเพื่อแสดงผลบนหน้าจอเมื่อเผยแพร่ในเว็บไซต์
อย่างไรก็ตามขนาดภาพและความละเอียดกริดนั้นมีประโยชน์จริง ๆ สำหรับการพิมพ์ความละเอียดสูง นั่นคือทัศนียภาพที่แตกต่างซึ่งฉันจะไม่อธิบายในคำอธิบายนี้
ดังนั้นฉันจะใช้รูปภาพนี้ในเว็บไซต์ได้อย่างไรโดยไม่ต้องรอหลายปีเพื่ออัปโหลดและรออีกหลายปีเพื่อแสดงในเว็บไซต์ของฉัน
และเมื่อเราพูดถึง "การบีบอัด" เราจำเป็นต้องเปลี่ยนคุณภาพอย่างชัดเจนเพื่อให้สามารถใช้งานได้ในกรณีที่เรากำลังเผชิญอยู่
ดังนั้นให้วางถัดไปใน terminal:
convert seminario-tabloide.png test.jpg
สิ่งนี้จะแปลงรูปแบบ PNG ที่มีความคมชัดสูงเป็นรูปแบบ JPG ที่ "ถูกบีบอัด" ซึ่งตัวไฟล์เองจะเล็กกว่า! มันเปลี่ยนจาก 9.5 MB เป็น 2.4 MB
แต่ 2.4 MB นั้นเป็นไฟล์ขนาดใหญ่ ตอนนี้มาเล่นกับImageMagick ที่ แปลงคำสั่งเพื่อสร้างขนาดไฟล์ที่เล็กลง:
convert test.jpg -quality 50% test-50p.jpg
นี่คือสิ่งที่เราต้องทำเพื่อ "บีบอัด" ภาพ สิ่งนี้จะลดคุณภาพของภาพลง 50% และส่งมอบขนาดไฟล์ 938.4 KB <=== (หมายเหตุ: KILOBYTES ไม่ได้เป็นไฟล์ขนาดเมกะไบต์)
เราสามารถไปต่อและสร้างไฟล์ขนาดเล็กลงโดยการปรับเปอร์เซ็นต์ในคำสั่งเดียวกันผ่าน:
convert test.jpg -quality 30% test-30p.jpg
โปรดทราบว่าในตัวอย่างนี้เรากำลังลดคุณภาพของไฟล์ไม่ใช่ขนาดภาพ ซึ่งจะส่งผลให้ไฟล์บีบอัดที่ไม่ได้รับผลกระทบทางสายตาเมื่อแสดงผลบนหน้าจอ แต่คุณจะเห็นสิ่งประดิษฐ์เมื่อพิมพ์ด้วยกระดาษขนาดใหญ่ (ใหญ่กว่าตัวอักษร)
ตอนนี้ เราสามารถทำสิ่งที่แตกต่าง สองสามอย่างแน่นอน: เราสามารถปรับขนาดรูปภาพก่อนและใช้การบีบอัดหลังจากนั้นซึ่งจะทำให้ขนาดไฟล์เล็กกว่าต้นฉบับและจะส่งรูปภาพที่มีประโยชน์สำหรับการแสดงผลบนหน้าจอไม่ดีสำหรับการพิมพ์ แต่ดูเหมือนว่าเรา จำเป็นต้องแสดงบนหน้าจอไม่ใช่ในแบนเนอร์ที่พิมพ์ใช่ไหม
ดังนั้นทำสิ่งนี้:
convert seminario-tabloide.png -resize 1024x test-1024x.jpg
ด้วยคำแนะนำนี้เราจะขอให้ปรับขนาดรูปภาพให้กว้าง 1024 พิกเซลด้วยจำนวนพิกเซลที่ต้องการเพื่อไม่ให้สูญเสียสัดส่วนภาพ
ทีนี้ ... เดาอะไรนะ?
ขนาดไฟล์ลดลงจาก 9.5 MB เป็น ... (เพลงโปรดด้วย congas โปรด) 433.7 KILOBYTES
หากเราต้องการบีบอัดไฟล์สูงสุดที่บีบอัดได้สูงสุดเช่นนี้เราจะเผชิญกับข้อมูลโอเวอร์เฮดที่ใส่เข้าไปในไฟล์และมันจะทำให้ไฟล์มีขนาดใหญ่ขึ้น ดังนั้นฉันจะไม่แนะนำให้คุณลอง แต่ถ้าคุณคาดหวังให้ฉันทำตัวอย่างตกลง ... ไปเลย!
convert test-1024x.jpg -quality 50% test-1024x-50p.jpg
และเราเปลี่ยนจาก 433.7 KB เป็น 176.2 KBในคำสั่งเดียว ตัวอย่างนี้สำเร็จแล้ว แต่อย่าคาดหวังว่าแบบฝึกหัดใด ๆ ที่จะทำให้ไฟล์มีขนาดเล็กลง แต่คุณสามารถมีความสนุกสนานมากมายเมื่อใช้แบบฝึกหัดนี้
Oh! แต่ฉันเกือบลืมความต้องการอย่างใดอย่างหนึ่ง: เมื่อต้องการใช้กระบวนการนี้กับรูปภาพจำนวนมากอย่างง่ายดาย
สำหรับสิ่งนั้นเราสามารถทำได้ด้วยสองกระบวนการ
สิ่งนี้เร็วกว่าและง่ายกว่า งั้นบอกเทอร์มินัลว่าเราต้องใช้คำสั่งเดียวกันในไฟล์ทั้งหมดในไดเรกทอรีหลังจากนั้นฉันจะอธิบายคำสั่งอื่น ๆ
แปลงทั้งหมดเป็น 1024px (คุณสามารถใช้จำนวนพิกเซลใดก็ได้)
for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;
ที่นี่เรากำลังขอให้คำสั่งเรียกใช้คำสั่งเดียวกันสำหรับไฟล์ทั้งหมดในไดเรกทอรีใช้การแปลงและวางสำเนาที่มีชื่อแตกต่างกันเพื่อให้ง่ายต่อการเลือก
ลดคุณภาพเป็นเปอร์เซ็นต์ (ใช้เปอร์เซ็นต์ใด ๆ ที่คุณต้องการ) ให้กับรูปภาพทั้งหมดในไดเรกทอรี:
for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;
ที่นี่เราขอให้รูปภาพที่ถูกย่อขนาดลดคุณภาพเพื่อทำให้ขนาดไฟล์เล็กลง
คุณสามารถเล่นกับคำสั่งเหล่านี้และดูผลลัพธ์ของคุณ หลังจากสองสามชั่วโมงมีความสนุกสนานคุณจะเป็นผู้เชี่ยวชาญ
เมื่อวันที่ 20 เมษายน 2558 ฉันต้องเผชิญกับสถานการณ์เช่นนี้เป็นคำถามดั้งเดิมดังนั้นฉันจึงต้องทำการวิจัยและขอความช่วยเหลือเกี่ยวกับคำถาม นั่นเป็นเหตุผลที่ตอนนี้ฉันรู้เรื่องนี้มากมาย อย่าคิดว่าฉันเกิดมาพร้อมกับความรู้นี้
หากคุณไม่คุ้นเคยกับเทอร์มินัลและ / หรือต้องการใช้ GUI เพื่อเลือกกลุ่มไฟล์และใช้การแปลงคุณสามารถสร้าง Nautilus Actions Script ของคุณเองเพื่อคลิกขวาที่กลุ่มของไฟล์และเลือก ตัวเลือกจากเมนูบริบท
สำหรับคำแนะนำเกี่ยวกับวิธีการทำสิ่งดังกล่าวโปรดอ่านทั้งคำถามคำตอบและความคิดเห็นที่นี่: วิธีการประมวลผลภาพ JPG เป็นชุดเพื่อเปลี่ยนคุณภาพด้วย Nautilus-Actions
โชคดี!
convert
ทักษะบรรทัดคำสั่งของImageMagick นั้นยอดเยี่ยมมาก
convert photo.jpg -quality 70% photo_compressed.jpg
รูปแบบคำสั่งและใช้งานได้ดี! แม้แต่การตั้งค่าการบีบอัดให้เหลือเพียง 70% ของคุณภาพดั้งเดิมก็ลดขนาดภาพลงเหลือ ~ 37% ของต้นฉบับเนื่องจากเอฟเฟกต์จะขยายใหญ่ขึ้นโดยอยู่บนแกน x และ y
mogrify -resize 1600 -path dir_name -format JPG -quality 90 *.tif
หากคุณอ้างถึงรูปภาพ jpeg การบีบอัดข้อมูลโดยพฤตินัยนั้นเป็นไปไม่ได้ เนื่องจาก jpeg เป็นคำจำกัดความรูปแบบไฟล์บีบอัด (เสียงรบกวนและพิกเซลไร้ประโยชน์ทั้งหมดจะถูกลบออกไปแล้ว) คุณสามารถซิปได้เลย แต่ขนาดโดยรวมจะยังคงเท่าเดิม อัลกอริทึมการบีบอัดขั้นสูงเดียวที่ฉันรู้จักสำหรับ jpegs คือ zipx แต่ zipx นั้นเป็นกรรมสิทธิ์ของ Winzip และทำให้มั่นใจได้สูงสุด ขนาดลดลง 30% (ในโหมดไฟล์เก็บถาวร zipx)
หากต้องการแสดงภาพของคุณบนเว็บก่อนอื่นคุณควรปรับขนาดภาพ (ต่ำกว่า 1MB ต่อภาพ) และแปลงเป็นรูปแบบไฟล์ png PNG (= กราฟิกเครือข่ายพกพา) ได้รับการปรับแต่งเป็นพิเศษเพื่อการถ่ายโอนเว็บที่เร็วขึ้นและแสดงได้เร็วขึ้น ผู้ใช้ขั้นสูงอาจแปลงรูปภาพเหล่านั้นเป็นรูปแบบ webp (รูปแบบของ Google สำหรับรูปภาพขั้นตอนวิธีการโหลดที่เร็วที่สุด)
คุณแบทช์สามารถแปลงรูปภาพด้วย XnConvert จากนั้นแบทช์ปรับขนาดรูปภาพของคุณด้วย XnView ดาวน์โหลดแพคเกจ deb จากที่นี่: http://www.xnview.com/de/xnviewmp/#downloadsจากนั้นคลิกขวาบนแล้วเปิดด้วย Gnome Software
หากคุณไม่สนใจความเร็วในการโหลดเครือข่าย แต่ต้องใส่ใจกับคุณภาพคุณควรเก็บภาพของคุณไว้โดยไม่ถูกแตะต้องและสร้างห้องสมุดดิจิทัลสำหรับพวกเขา อาจอัปโหลดไปยังเซิร์ฟเวอร์สาธารณะ (Yahoo, Google, ฯลฯ )