Skip to content

پردازش تصویر

کمک‌کارهای تصویر بر پایهٔ Canvas. هر دگرگونی به‌جای data URL یک بوم برون‌پرده‌ای برمی‌گرداند، پس می‌توان چندتایشان را به هم زنجیر کرد بی‌آنکه در هر گام یک PNG کدگذاری و رمزگشایی شود.

کاربرد

ts
import { getImage, cutRound, opacity } from 'ranuts/utils';

const img = await getImage('/avatar.png');
const rounded = cutRound(img, 24);
const faded = opacity(rounded, 0.5);
document.body.appendChild(faded as HTMLCanvasElement);

API

getImage

تصویری را از روی مسیرش بار می‌کند؛ همین که رمزگشایی شد برآورده می‌شود.

پارامترها

پارامترتوضیحنوعپیش‌فرض
srcمسیر تصویرstringالزامی

بازگشت

آرگومانتوضیحنوع
promiseعنصر تصویرِ بارگذاری‌شدهPromise<ImgSource>

TIP

هنگام رد شدن، آنچه می‌گذرد رویدادِ خامِ error است، نه شیء Error. onerror در <img> هیچ دلیلی با خود نمی‌آورد — مرورگرها آن را برای شکست‌های میان‌مبدأ عمداً پنهان می‌کنند — پس پیچیدنش در Error تنها پیامی ساختگی می‌سازد.

cutRound

تصویر را با گوشه‌های گرد می‌برد.

پارامترها

پارامترتوضیحنوعپیش‌فرض
imgتصویر مبدأImgSourceالزامی
radiusشعاع گوشهnumberالزامی

بازگشت

آرگومانتوضیحنوع
canvasبوم برون‌پرده‌ایImgSource

opacity

کدری یکنواختی را بر سراسر تصویر می‌گذارد.

نخست ctx.filter را ترجیح می‌دهد (که روی GPU می‌دود)؛ آنجا که پشتیبانی نشود، به بازنویسی کانال آلفا پیکسل‌به‌پیکسل پناه می‌برد. آن راه جایگزین، پیکسل‌هایی را که آلفایشان از پیش 0 است رد می‌کند، پس نواحی کاملاً شفاف نمی‌توانند مقداری ناصفر بگیرند.

پارامترها

پارامترتوضیحنوعپیش‌فرض
imgتصویر مبدأImgSourceالزامی
opacityکدری، از ۰ تا ۱numberالزامی

بازگشت

آرگومانتوضیحنوع
canvasبوم برون‌پرده‌ایImgSource

getMatrix

ماتریس وزن گاوسی دوبعدی می‌سازد که چنان بهنجار شده که مجموع وزن‌ها 1 شود.

بهنجارسازی ناگزیر است: بی آن، پیچش با این ماتریس روشنایی کلی تصویر را عوض می‌کند. مقدار پیش‌فرض sigma برابر radius / 3 است؛ با این مقدار، منحنی گاوسی تا رسیدن به شعاع تقریباً به صفر افت کرده، پس خطای بریدن ناچیز است.

پارامترها

پارامترتوضیحنوعپیش‌فرض
radiusشعاع محوnumberالزامی
sigmaانحراف معیارnumberradius / 3

بازگشت

آرگومانتوضیحنوع
matrixآرایهٔ تختِ (2r+1)² عنصری، سطر‌محور، با مجموع 1number[]

نوع‌ها

ts
type ImgSource = HTMLImageElement | HTMLCanvasElement;

مرتبط

منتشرشده تحت مجوز MIT.