Библиотека JavaScript с открытым исходным кодом для обработки изображений
API JavaScript для применения различных эффектов к изображениям с использованием различных типов фильтров, таких как фильтр Гаусса, оттенки серого, фильтр верхних частот, инвертирование, лапласиан, зеркало, RGB, фильтр Робертса, насыщенность и другие.
Lena.js — это очень простая и легкая библиотека для обработки изображений, которая позволяет разработчикам программного обеспечения работать с различными типами изображений из своих приложений JavaScript. Это чистая библиотека JavaScript, которая может работать как в узле, так и в браузере без каких-либо внешних зависимостей. Библиотека имеет открытый исходный код и доступна по лицензии MIT. Библиотека не очень хорошо работает с большими изображениями внутри браузера, но очень эффективна для манипулирования маленькими изображениями.
Lena.js очень прост в использовании и может применять к изображениям различные эффекты. Фильтры изображений позволяют программным приложениям применять различные эффекты к изображениям одним щелчком мыши. Библиотека включает поддержку нескольких важных фильтров изображений, некоторые важные из них: гауссов, оттенки серого, фильтр высоких частот, инвертирование, лапласиан, зеркало, шум, Превитт, RGB, Робертс, насыщенность, сепия, резкость и многие другие. Библиотека также поддерживает применение нескольких фильтров к изображению. Фильтры хранятся в одной и той же глобальной переменной LenaJS, и доступ к ним можно получить через ее идентификатор с помощью ключа или записи через точку.
Начало работы с LenaJs
Рекомендуемый способ установки LenaJs через NPM. Пожалуйста, используйте следующую команду для его установки.
Установите Lena.Js через NPM
npm install lena.js --save
Применение фильтров к изображению через JavaScript
Библиотека Lena.js с открытым исходным кодом предоставляет набор полезных фильтров, которые можно использовать для применения различных эффектов к изображениям внутри приложений JavaScript. Сначала укажите правильный адрес изображения, а затем выберите фильтр из списка доступных фильтров. Вы можете использовать методы filterImage и redrawCanvas, чтобы легко применить фильтр к выбранному изображению. Изображение и холст будут использоваться для применения фильтра.
Добавить фильтр шума через JavaScript
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 позволяет разработчикам программного обеспечения применять несколько фильтров к своим изображениям в своих собственных приложениях JavaScript. Обычно один фильтр применяется к изображению методом filterImage. Чтобы применить несколько фильтров к изображению, вам нужно использовать метод redrawCanvas вместо filterImage. Вам нужно передать изображение, уже обработанное с помощью фильтра, в качестве первого аргумента и передать новый фильтр в качестве второго аргумента, который будет легко добавлен к изображению.
Обработка изображений через JavaScript API
Библиотека LenaJs дает программистам возможность программно добавлять фильтры к изображениям внутри JavaScript. Применение фильтров с помощью 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