pica 10 منتشر شد: تغییرات بزرگ در ریسایز تصویر
خلاصهٔ کاملتر
pica یک کتابخانه جاوااسکریپتی برای ریسایز باکیفیت تصویر در مرورگره که از Web Worker، WebAssembly و OffscreenCanvas برای پردازش موازی و سریع استفاده میکنه. نسخه ۱۰ این کتابخانه در دو مرحله (10.0.0 و 10.0.1) منتشر شد و تغییرات قابل توجهی رو با خودش آورده.
مهاجرت به TypeScript و ابزارهای مدرن یکی از مهمترین تغییرات این نسخهست. سورس کد به TypeScript منتقل شده، سیستم بیلد به Vite تغییر کرده، و تستها با Vitest و Playwright اجرا میشن. همچنین بیلدهای ESM به پروژه اضافه شدن که برای استفاده در ابزارهای مدرن مثل Vite و esbuild خیلی مهمه.
تغییر در API هم بخش مهمی از این آپدیته. کتابخانه حالا بهجای export مستقیم، یه factory به اسم pica(options) رو بهعنوان default و کلاس Pica رو بهعنوان named export ارائه میده. آرگومان موضعی قدیمی برای کیفیت در تابع resize حذف شده؛ دیگه نمیشه نوشت resize(from, to, quality) و باید از شکل resize(from, to, { quality }) یا گزینه filter استفاده کرد.
چند تغییر مهم دیگه هم هست: اشتراکگذاری ضمنی pool بین چند instance از Pica حذف شده، پس باید یه instance واحد بسازی و ازش استفاده مجدد کنی. گزینه createCanvas هم برداشته شده. یه باگ در Chrome مربوط به createImageBitmap برای تصاویر با Exif orientation هم برطرف شده.
در نسخه 10.0.1 که چند روز بعد منتشر شد، چند بهبود کوچکتر اومد: اضافه شدن subpath exportها برای بیلدهای split و browser (pica/pica_main، pica/pica_worker، pica/browser)، آپدیت وابستگیهای glur به v2 و multimath به v3، و اینکه فایلهای dist/ دیگه در ریپو نگهداشته نمیشن و موقع انتشار پکیج ساخته میشن.
نکات کلیدی:
- مهاجرت کامل سورس به TypeScript با بیلد Vite و تست Vitest + Playwright
- اضافه شدن بیلدهای ESM برای سازگاری با ابزارهای مدرن
- حذف پشتیبانی از مرورگرهای قدیمی (IE قبل از Edge و مشابه)
- تغییر API: factory و کلاس جداگانه، حذف آرگومان موضعی quality
- رفع باگ Chrome برای تصاویر با Exif orientation
- حذف اشتراکگذاری ضمنی pool بین instanceها




