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