Лучший способ фильтровать изображения в Javascript - это среда обработки изображений. Некоторые чистые опции Javascript:
В случае MarvinJ , используйте следующий код для загрузки вашего изображения:
var image = new MarvinImage();
image.load("https://i.imgur.com/By6tvip.jpg", imageLoaded);
Я буду использовать следующее входное изображение для демонстрации некоторых фильтров:
GrayScale:
Marvin.grayScale(image, imageOut);
Черно-белый:
Marvin.blackAndWhite(image, imageOut, 10);
Sepia:
Marvin.sepia(image, imageOut, 40);
Тиснение:
Marvin.emboss(image, imageOut);
Обнаружение края:
Marvin.prewitt(image, imageOut);
Размытие
Marvin.gaussianBlur(image, imageOut, 3);
Яркость и контрастность:
Marvin.brightnessAndContrast(image, imageOut, 70, 60);
Цветовой канал:
Marvin.colorChannel(image, imageOut, 0, 0, 110);
Пример запуска предыдущих фильтров:
var canvas1 = document.getElementById("canvas1");
var image = new MarvinImage();
image.load("https://i.imgur.com/By6tvip.jpg", imageLoaded);
function imageLoaded(){
var imageOut = new MarvinImage(image.getWidth(), image.getHeight());
// GrayScale
Marvin.grayScale(image, imageOut);
imageOut.draw(canvas1);
// Black and White
Marvin.blackAndWhite(image, imageOut, 10);
imageOut.draw(canvas2);
// Sepia
Marvin.sepia(image, imageOut, 40);
imageOut.draw(canvas3);
// Emboss
Marvin.emboss(image, imageOut);
imageOut.draw(canvas4);
// Edge
imageOut.clear(0xFF000000);
Marvin.prewitt(image, imageOut);
imageOut.draw(canvas5);
// Gaussian Blur
Marvin.gaussianBlur(image, imageOut, 5);
imageOut.draw(canvas6);
// Brightness
Marvin.brightnessAndContrast(image, imageOut, 70, 60);
imageOut.draw(canvas7);
// Color Channel
Marvin.colorChannel(image, imageOut, 0, 0, 110);
imageOut.draw(canvas8);
}
<script src="https://www.marvinj.org/releases/marvinj-0.7.js"></script>
<canvas id="canvas1" width="192" height="120"></canvas>
<canvas id="canvas2" width="192" height="120"></canvas>
<canvas id="canvas3" width="192" height="120"></canvas>
<canvas id="canvas4" width="192" height="120"></canvas>
<canvas id="canvas5" width="192" height="120"></canvas>
<canvas id="canvas6" width="192" height="120"></canvas>
<canvas id="canvas7" width="192" height="120"></canvas>
<canvas id="canvas8" width="192" height="120"></canvas>