کتابخانه جاوا اسکریپت منبع باز برای پردازش تصویر
JavaScript API برای اعمال جلوههای مختلف بر روی تصاویر با استفاده از انواع فیلترها مانند گاوسی، مقیاس خاکستری، highpass، invert، laplacian، mirror،RGB، Roberts، saturation و موارد دیگر.
Lena.js یک کتابخانه پردازش تصویر بسیار سبک وزن است که توسعه دهندگان نرم افزار را قادر می سازد تا با انواع مختلف تصاویر از داخل برنامه های جاوا اسکریپت خود کار کنند. این یک کتابخانه جاوا اسکریپت خالص است که می تواند روی Node و همچنین درون مرورگر بدون هیچ گونه وابستگی خارجی کار کند. این کتابخانه منبع باز است و تحت مجوز MIT در دسترس است. این کتابخانه با تصاویر سنگین داخل مرورگر خیلی خوب نیست اما برای دستکاری تصاویر کوچک بسیار کارآمد است.
استفاده از Lena.js بسیار آسان است و می تواند افکت های مختلفی را روی تصاویر اعمال کند. فیلترهای تصویر به برنامههای نرمافزاری این امکان را میدهند که تنها با یک کلیک افکتهای مختلف را روی تصاویر اعمال کنند. این کتابخانه از چندین فیلتر تصویر مهم پشتیبانی می کند، برخی از فیلترهای مهم عبارتند از: گاوسی، مقیاس خاکستری، گذر بالا، معکوس، لاپلاسین، آینه، نویز، Prewitt، RGB، رابرتز، اشباع، sepia، شارپن و بسیاری دیگر. این کتابخانه همچنین از اعمال چندین فیلتر بر روی یک تصویر پشتیبانی می کند. فیلترها در همان متغیر جهانی LenaJS ذخیره می شوند و می توان از طریق شناسه آن با استفاده از نماد کلید یا نقطه به آن دسترسی داشت.
شروع کار با LenaJs
روش توصیه شده برای نصب LenaJs از طریق NPM. لطفا از دستور زیر برای نصب آن استفاده کنید.
Lena.Js را از طریق NPM نصب کنید
npm install lena.js --save
اعمال فیلترها بر روی تصویر از طریق جاوا اسکریپت
کتابخانه منبع باز Lena.js مجموعه ای از فیلترهای مفید را ارائه کرده است که می توان از آنها برای اعمال انواع مختلف جلوه ها بر روی تصاویر در برنامه های جاوا اسکریپت استفاده کرد. ابتدا لطفا آدرس صحیح تصویر را وارد کنید و سپس فیلتر را از لیست فیلترهای موجود انتخاب کنید. میتوانید از روشهای filterImage و redrawCanvas برای اعمال آسان فیلتر روی تصویر انتخابشده استفاده کنید. برای اعمال فیلتر از یک تصویر و یک بوم استفاده می شود.
افزودن فیلتر نویز از طریق جاوا اسکریپت
const noise = function (pixels, amount = 0) {
const level = amount * 255 * 0.1
let random;
for (let i = 0; i < pixels.data.length; i += 4) {
random = (0.5 - Math.random()) * level;
pixels.data[i] += random;
pixels.data[i + 1] += random;
pixels.data[i + 2] += random;
}
return pixels
}
export default noise
اعمال چندین فیلتر روی تصاویر
کتابخانه Lena.js به توسعه دهندگان نرم افزار امکان می دهد چندین فیلتر را روی تصاویر خود در داخل برنامه های جاوا اسکریپت خود اعمال کنند. معمولاً با روش filterImage یک فیلتر منفرد روی یک تصویر اعمال می شود. برای اعمال چندین فیلتر روی یک تصویر، باید به جای filterImage از روش redrawCanvas استفاده کنید. شما باید تصویری را که قبلاً با یک فیلتر رندر شده است به عنوان آرگومان اول ارسال کنید و باید یک فیلتر جدید را به عنوان آرگومان دوم ارسال کنید که به راحتی به تصویر اضافه می شود.
پردازش تصاویر از طریق JavaScript API
کتابخانه LenaJs به برنامه نویسان نرم افزار این قابلیت را می دهد که به صورت برنامه نویسی یک فیلتر را در تصاویر داخل جاوا اسکریپت اضافه کنند. اعمال فیلترها با LenaJs بسیار ساده است، API دو راه برای افزودن فیلتر ارائه می دهد. filterImage() و redrawCanvas(). برای اعمال فیلتر باید یک تصویر و یک بوم به روش ارائه دهید. برای دریافت فیلتر، می توانید از متد LenaJs['filername'] استفاده کنید و با استفاده از متد filterImage() آن را روی تصویر اعمال کنید.
اعمال فیلتر کنتراست روی تصاویر<
const contrast = function (pixels, amount) {
const level = Math.pow((amount + 100) / 100, 2)
let data = pixels.data
let r
let g
let b
for (let i = 0; i < data.length; i += 4) {
r = data[i]
g = data[i + 1]
b = data[i + 2]
r = r / 255
r -= 0.5
r *= level
r += 0.5
r *= 255
g = g / 255
g -= 0.5
g *= level
g += 0.5
g *= 255
b = b / 255
b -= 0.5
b *= level
b += 0.5
b *= 255
r = r < 0 ? 0 : r > 255 ? 255 : r
g = g < 0 ? 0 : g > 255 ? 255 : g
b = b < 0 ? 0 : b > 255 ? 255 : b
data[i] = r
data[i + 1] = g
data[i + 2] = b
}
return pixels
}
export default contrast