นี่คือ Squoosh แต่เป็นไลบรารีโหนด
เรายินดีที่จะนำเสนอ libSquoosh ซึ่งเป็นไลบรารีโหนดทดลองที่สร้างขึ้นโดย Squoosh CLI เพื่อมอบความสามารถทั้งหมดสำหรับ Squoosh CLI ด้วยอินเทอร์เฟซ JavaScript เป็นไอโอมาติก
Squoosh.app เป็น PWA ที่บีบอัดรูปภาพให้คุณในเบราว์เซอร์ โดยรองรับรูปแบบรูปภาพทั้งเก่าและใหม่จำนวนมาก และประมวลผลฝั่งไคลเอ็นต์ในเบราว์เซอร์ผ่าน WebAssembly ซึ่งหมายความว่ารูปภาพของคุณจะอยู่ในคอมพิวเตอร์ของคุณอย่างปลอดภัย แทนที่จะส่งไปยังเซิร์ฟเวอร์ที่ไหนสักแห่ง และ Squoosh นั้นทำงานได้แม้ออฟไลน์อยู่
ในงาน Chrome DevSummit 2020 เราได้ประกาศเปิดตัว Squoosh v2 และ Squoosh CLI ในการนำตัวแปลงรหัสทั้งหมดของ Squoosh ไปยังบรรทัดคำสั่งโดยใช้ Node และ WebAssembly วิธีนี้จะช่วยให้คุณบีบอัดทั้งโฟลเดอร์ด้วยคำสั่งเดียว และใช้ประโยชน์จาก CLI เพื่อให้โฟลเดอร์เลือกพารามิเตอร์ตัวแปลงรหัสให้คุณ
CLI เปิดใช้การทำงานอัตโนมัติจำนวนมาก จึงเป็นเรื่องธรรมดาที่นักพัฒนาซอฟต์แวร์เริ่มขออินเทอร์เฟซที่ดูมีเอกลักษณ์มากกว่าการเรียกใช้ Squoosh CLI ผ่านการใช้โปรแกรมผ่านเชลล์ Anton (@atjn บน GitHub) ก้าวสู่งานและแยกโค้ด Squoosh CLI ออกเป็น 2 ส่วน ได้แก่ โค้ดอินเทอร์เฟซบรรทัดคำสั่งและฟังก์ชันหลักที่สำคัญ
import { ImagePool } from "@squoosh/lib";
// libSquoosh uses a worker-pool under the hood
// to parallelize all image processing.
const imagePool = new ImagePool();
// Accepts both file paths and Buffers/TypedArrays.
const image = imagePool.ingestImage("./squoosh.jpeg");
// Optional.
// await image.preprocess({
// resize: {
// enabled: true,
// width: 128,
// },
// });
await image.encode({
// All codecs are initialized with default values
// that can be individually overwritten.
mozjpeg: {
quality: 10,
},
avif: {
cqLevel: 10,
},
jxl: {},
});
const { extension, binary } = await image.encodedWith.mozjpeg;
await fs.writeFile(`output.${extension}`, binary);
// ... same for other encoders ...
await imagePool.close();
เป้าหมายของเราคือการทำให้การบีบอัดรูปภาพช่วยให้ผู้เขียนเครื่องมือเข้าถึงได้มากขึ้น เราหวังว่าจะได้ผสานรวมกับ Webpack, Rollup และเครื่องมือบิลด์อื่นๆ เพื่อให้มั่นใจว่ารูปภาพจะได้รับการเพิ่มประสิทธิภาพอย่างเหมาะสมสำหรับเว็บ
ฉันอยากเป็น "ขอขอบคุณ" เป็นอย่างสูง ถึง Anton เวลาที่เขาสัญญากับ Squoosh
สำหรับ Squoosh CLI และ libSquoosh ยังเร็วเกินไป และเรามีไอเดียและแผนงานอีกมากมายที่เราอยากนำมาใช้ ระหว่างนี้ก็ลองใช้ libSquoosh ได้นะ อย่างไรก็ตาม โปรดทราบว่านี่เป็นรุ่นแรกที่ออกมาทดสอบ และมีโอกาสสูงที่คุณจะเจอข้อบกพร่อง หากพบปัญหาดังกล่าวหรือมีคำถาม โปรดเปิดปัญหา
หากคุณสนใจที่จะมีส่วนร่วมใน Squoosh เช่น มีส่วนร่วมในเอกสารประกอบที่มีรายละเอียดมากมายเกี่ยวกับ libSquoosh หรือให้ความช่วยเหลือในส่วนอื่นๆ ของแอป เราจะเริ่มโปรแกรมการให้คำปรึกษาเพื่อช่วยคุณในการเริ่มต้น หากต้องการทราบข้อมูลเพิ่มเติม โปรดดูปัญหาเกี่ยวกับการติดตาม