Некоторые фильтры изображений доступны в CSS и поддерживаются всеми основными браузерами, но вы можете иметь гораздо больше возможностей, используя HTML5 Canvas и Javascript.
Однако при использовании фильтрации изображений на основе Canvas вам не нужно реализовывать алгоритм фильтров самостоятельно. Просто используйте библиотеку обработки изображений или манипуляции с Canvas.
Примеры:
В приведенных ниже примерах я использовал MarvinJ.
Загрузка изображения:
image = new MarvinImage();
image.load("https://i.imgur.com/B33rKWi.png", imageLoaded);
Шкала серого:
Marvin.grayScale(image.clone(), image);
Черно-белый:
Marvin.blackAndWhite(image.clone(), image, 5);
Черно-белый 2:
Marvin.blackAndWhite(image.clone(), image, 40);
Полутона:
Marvin.halftoneErrorDiffusion(image.clone(), image);
Пример выполнения:
var canvas = document.getElementById("canvas");
image = new MarvinImage();
image.load("https://i.imgur.com/B33rKWi.png", imageLoaded);
function imageLoaded(){
// GrayScale
//Marvin.grayScale(image.clone(), image);
//image.draw(canvas);
// Black and White
Marvin.blackAndWhite(image.clone(), image, 5);
image.draw(canvas);
// Black and White 2
//Marvin.blackAndWhite(image.clone(), image, 40);
//image.draw(canvas);
// Error Diffusion
//Marvin.halftoneErrorDiffusion(image.clone(), image);
//image.draw(canvas);
}
<script src="https://www.marvinj.org/releases/marvinj-0.7.js"></script>
<canvas id="canvas" width="400" height="400"></canvas>