libSquoosh ile tanışın

Adı Squoosh, ama Düğüm kitaplığı olarak.

Squoosh CLI'ın üzerine inşa edilen ve JavaScript deyimsel arayüzüyle Squoosh CLI'ın tüm özelliklerini sunan deneysel bir Düğüm kitaplığı olan libSquoosh'u tanıtmaktan mutluluk duyuyoruz.

Squoosh.app, resimleri tarayıcıda sıkıştıran bir PWA'dır. Birçok eski ve yeni resim biçimini destekler ve WebAssembly aracılığıyla tarayıcıda istemci tarafında işler. Bu, resimlerinizin bir sunucuya bir yere gönderilmek yerine kendi bilgisayarınızda güvenli bir şekilde kalacağı ve Squoosh'un çevrimdışıyken bile çalıştığı anlamına gelir.

Chrome DevSummit 2020'de Squoosh v2'yi duyurduk. Squoosh CLI ile birlikte, Node ve WebAssembly'yi kullanarak Squoosh'un tüm codec'lerini komut satırına taşıdık. Böylece tek bir komutla klasörlerin tamamını sıkıştırabilir ve codec parametrelerini sizin için seçmesi amacıyla KSA'dan yararlanabilirsiniz.

KSA, pek çok otomasyon sağlar. Bu nedenle, geliştiricilerin Squoosh KSA'yı programlı bir şekilde kabuk üzerinden çağırmak yerine daha deyimsel bir arayüz istemeye başlaması çok doğaldır. Anton (GitHub'da @atjn) göreve adım attı ve Squoosh CLI kodunu iki bölüme ayırdı: Komut satırı arayüz kodu ve temel işlev.

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();

Amacımız, araç kullanan yazarlar için resim sıkıştırma işlemini daha erişilebilir hale getirmektir. Resimlerinizin web için uygun şekilde optimize edildiğinden emin olmak amacıyla Webpack, Rollup ve diğer derleme araçlarıyla entegrasyon yapmayı umuyoruz.

Anton’a Squoosh’a vakit ayırdığı için teşekkür etmek istiyorum.

Squoosh CLI ve libSquoosh için henüz yolun başındayız ve uygulamak istediğimiz birçok fikir ve plan var. Bu arada libSquoosh'u deneyin! Ancak bunun erken, deneysel bir sürüm olduğunu ve bazı hatalarla karşılaşma ihtimalinizin bulunduğunu unutmayın. Sorunlarla karşılaşırsanız veya sorularınız olursa lütfen bir sorun sayfası açın.

Squoosh'a katkıda bulunmak, örneğin libSquoosh ile ilgili son derece yetersiz belgelere katkıda bulunmak veya uygulamanın diğer bölümlerine yardımcı olmak istiyorsanız, başlamanıza yardımcı olmak için bir mentorluk programına başlıyoruz. Daha fazla bilgi edinmek isterseniz izleme sorunu sayfamıza göz atın.