tanıtmaktan mutluluk duyuyoruz libSquooshüzerine Squoosh CLI’nin inşa edildiği deneysel bir Düğüm kitaplığı ve JavaScript-deyimsel bir arayüzle size Squoosh CLI’nin tüm özelliklerini sunar.
Squoosh.app, tarayıcıda görüntüleri sizin için sıkıştıran bir PWA’dır. Birçok eski ve yeni görüntü biçimini destekler ve bunları WebAssembly aracılığıyla tarayıcıda istemci tarafında işler. Bu, resimlerinizin herhangi bir yerdeki bir sunucuya gönderilmek yerine kendi bilgisayarınızda güvenli bir şekilde kaldığı ve Squoosh’un çevrimdışıyken bile çalıştığı anlamına gelir.
Chrome DevSummit 2020’de, Squoosh’un tüm kodeklerini Node ve WebAssembly kullanarak komut satırına getirmek için Squoosh CLI ile birlikte Squoosh v2’yi duyurduk. Bu, tüm klasörleri tek bir komutla sıkıştırmanıza ve CLI’ler sizin için codec parametrelerini seçmesine izin vermek için.
CLI çok sayıda otomasyon sağlar ve bu nedenle geliştiricilerin Squoosh CLI’yi kabuk aracılığıyla programlı olarak çağırmaktansa daha deyimsel bir arabirim istemeye başlaması doğaldır. Anton (@atjn on GitHub) göreve adım attı ve Squoosh CLI kodunu iki kısma ayırdı: Komut satırı arayüz kodu ve temeldeki temel işlevsellik.
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ç yazarları için görüntü sıkıştırmayı daha erişilebilir hale getirmektir. Görüntülerinizin web için uygun şekilde optimize edildiğinden emin olmak için Webpack, Rollup ve diğer oluşturma araçlarıyla entegrasyon görmeyi umuyoruz.
Squoosh’a ayırdığı zaman için Anton’a kocaman bir “teşekkür ederim” demek istiyorum!
Squoosh CLI ve libSquoosh için henüz erken ve uygulamak istediğimiz daha birçok fikir ve planımız var. Bu arada, libSquoosh’u deneyin! Ancak, bunun erken, deneysel bir sürüm olduğunu ve bazı hatalarla karşılaşma olasılığınızın yüksek olduğunu unutmayın. Bazılarını bulursanız veya sorularınız varsa, lütfen bir tane açın. sorun.
Squoosh’a katkıda bulunmakla ilgileniyorsanız – örneğin, libSquoosh etrafındaki son derece seyrek belgelere katkıda bulunmak veya uygulamanın diğer bölümlerinden herhangi birine yardım etmek – başlamanıza yardımcı olacak bir mentorluk programı başlatıyoruz. Daha fazla bilgi edinmek istiyorsanız, bizim göz atın izleme sorunu.