เป็น 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 ผ่าน Shell แบบเป็นโปรแกรม 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 หรือช่วยในส่วนอื่นๆ ของแอป เรากำลังเริ่มโปรแกรมการให้คำปรึกษาเพื่อช่วยคุณเริ่มต้นใช้งาน หากต้องการทราบข้อมูลเพิ่มเติม โปรดดูปัญหาการติดตาม