यह Squoosh है, लेकिन Node लाइब्रेरी की तरह है.
हमें libSquoosh की शुरुआत करते हुए खुशी हो रही है. यह प्रयोग के तौर पर शुरू की गई एक नोड लाइब्रेरी है और इसके सबसे ऊपर Squoosh सीएलआई बनाया गया है. इससे आपको JavaScript-आइडियोमैटिक इंटरफ़ेस के साथ Squoosh सीएलआई के लिए सभी सुविधाएं मिलती हैं.
Squoosh.app एक PWA है, जो ब्राउज़र में आपके लिए इमेज को कंप्रेस करता है. यह कई पुराने और नए इमेज फ़ॉर्मैट के साथ काम करता है और उन्हें WebAssembly के ज़रिए ब्राउज़र में क्लाइंट-साइड प्रोसेस करता है. इसका मतलब है कि आपकी तस्वीरें कहीं और भेजने के बजाय, आपके कंप्यूटर पर सुरक्षित रहती हैं. साथ ही, Squoosh ऑफ़लाइन होने पर भी काम करता है.
Chrome DevSummit 2020 में हमने Squoosh सीएलआई के साथ मिलकर Squoosh v2 का एलान किया. इसमें, Squoosh के सभी कोडेक को Node और WebAssembly का इस्तेमाल करके, कमांड-लाइन पर लाया गया. इससे, एक निर्देश से सभी फ़ोल्डर कंप्रेस किए जा सकते हैं. साथ ही, सीएलआई का इस्तेमाल किया जा सकता है, ताकि यह आपके लिए कोडेक पैरामीटर चुन सके.
सीएलआई, ऑटोमेशन की काफ़ी सुविधा देता है. इसलिए, डेवलपर ने शेल के ज़रिए Squoosh सीएलआई को प्रोग्राम के हिसाब से शुरू करने के बजाय, ज़्यादा मुहावरे वाले इंटरफ़ेस की मांग करना शुरू कर दिया है. Anton (GitHub पर @atjn) ने इस टास्क की प्रोसेस शुरू की और Squoosh सीएलआई कोड को दो हिस्सों में बांटा: कमांड-लाइन इंटरफ़ेस कोड और मुख्य फ़ंक्शन.
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, रोलअप टूल, और अन्य बिल्ड टूल के साथ इंटिग्रेशन की सुविधा मिलेगी. इससे हमें यह पक्का करने में मदद मिलेगी कि आपकी इमेज, वेब के लिए सही तरीके से ऑप्टिमाइज़ की गई हैं.
मैं आपको बहुत-बहुत "धन्यवाद" कहना चाहती हूं एंटन को उस समय के लिए भेजा गया, जब उन्होंने Squoosh के साथ काम किया है!
Squoosh CLI और libSquoosh के लिए अभी काफ़ी शुरुआती दौर है. हमारे पास ऐसे कई और आइडिया और प्लान हैं जिन्हें हम लागू करना चाहते हैं. इस दौरान, libSquoosh आज़माएं! हालांकि, ध्यान रखें कि यह शुरुआती दौर में प्रयोग के तौर पर रिलीज़ किया गया है और इस बात की संभावना है कि आपको कुछ गड़बड़ियां मिल जाएं. अगर आपको कुछ पूछना है या कुछ पूछना है, तो कृपया कोई समस्या बताएं.
अगर आपको Squoosh में योगदान देने में दिलचस्पी है, तो हम एक मेंटॉरशिप प्रोग्राम शुरू कर रहे हैं. इससे आपको libSquoosh से जुड़े बहुत कम दस्तावेज़ों में योगदान देने या ऐप्लिकेशन के किसी अन्य हिस्से में मदद करने का मौका मिलेगा. अगर आपको ज़्यादा जानकारी चाहिए, तो ट्रैकिंग से जुड़ी हमारी समस्या देखें.