এটা Squosh, কিন্তু একটি নোড লাইব্রেরি হিসাবে.
আমরা libSquoosh , একটি পরীক্ষামূলক নোড লাইব্রেরি প্রবর্তন করতে পেরে খুশি যার উপরে Squosh CLI তৈরি করা হয়েছে, যা আপনাকে জাভাস্ক্রিপ্ট-ইডিওম্যাটিক ইন্টারফেসের সাথে Squosh CLI-এর জন্য সমস্ত ক্ষমতা প্রদান করে।
Squoosh.app হল একটি PWA যা ব্রাউজারে আপনার জন্য ছবি সংকুচিত করে। এটি অনেক পুরানো এবং নতুন ইমেজ ফরম্যাট সমর্থন করে এবং WebAssembly এর মাধ্যমে ব্রাউজারে ক্লায়েন্ট-সাইড প্রসেস করে। এর অর্থ হল আপনার ছবিগুলি কোথাও সার্ভারে পাঠানোর পরিবর্তে আপনার নিজের কম্পিউটারে নিরাপদে থাকে এবং অফলাইনে থাকা অবস্থায়ও Squosh কাজ করে৷
Chrome DevSummit 2020-এ আমরা Squosh v2 ঘোষণা করেছি , Squosh CLI-এর সাথে Squosh-এর সমস্ত কোডেককে Node এবং WebAssembly ব্যবহার করে কমান্ড-লাইনে আনতে। এটি আপনাকে একটি কমান্ডের সাহায্যে সম্পূর্ণ ফোল্ডারগুলিকে সংকুচিত করতে এবং এটিকে আপনার জন্য কোডেক পরামিতিগুলি বেছে নিতে দেওয়ার জন্য CLI এর ব্যবহার করতে দেয়।
সিএলআই প্রচুর অটোমেশন সক্ষম করে এবং তাই এটি স্বাভাবিক যে বিকাশকারীরা শেলটির মাধ্যমে স্কুশ সিএলআইকে প্রোগ্রাম্যাটিকভাবে আহ্বান করার চেয়ে আরও বেশি ইডিওম্যাটিক ইন্টারফেসের জন্য জিজ্ঞাসা করা শুরু করে। অ্যান্টন (GitHub-এ @atjn) টাস্কে এগিয়ে গেছেন এবং Squosh CLI কোডটিকে দুটি ভাগে বিভক্ত করেছেন: কমান্ড লাইন ইন্টারফেস কোড এবং অন্তর্নিহিত মূল কার্যকারিতা।
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 এবং অন্যান্য বিল্ড টুলগুলিতে ইন্টিগ্রেশন দেখতে আশা করি৷
আমি অ্যান্টনকে একটি বিশাল "ধন্যবাদ" জানাতে চাই যে সময়ের জন্য তিনি স্কুশের প্রতিশ্রুতি দিয়েছেন!
Squosh CLI এবং libSquosh-এর জন্য এটি এখনও তাড়াতাড়ি এবং আমাদের কাছে আরও অনেক ধারণা এবং পরিকল্পনা রয়েছে যা আমরা বাস্তবায়ন করতে চাই। ইতিমধ্যে, libSquoosh চেষ্টা করুন! যাইহোক, মনে রাখবেন যে এটি একটি প্রাথমিক, পরীক্ষামূলক রিলিজ এবং আপনার কিছু ত্রুটির মধ্যে পড়ার একটি ভাল সম্ভাবনা রয়েছে। আপনি যদি কিছু খুঁজে পান বা প্রশ্ন থাকে, দয়া করে একটি সমস্যা খুলুন।
আপনি যদি Squosh-এ অবদান রাখতে আগ্রহী হন—উদাহরণস্বরূপ libSquosh-এর আশেপাশে অত্যন্ত বিরল ডকুমেন্টেশনে অবদান রাখা বা অ্যাপের অন্য কোনো অংশে সাহায্য করা—আমরা আপনাকে শুরু করতে সাহায্য করার জন্য একটি মেন্টরশিপ প্রোগ্রাম শুরু করছি। আপনি যদি আরও জানতে চান, আমাদের ট্র্যাকিং সমস্যা দেখুন।