ขอแนะนำ libSquoosh

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