I worked on a project last year that required applying a color halftone filter to uploaded user photos. After a quick search on google, the only thing I found was a webGL shader but what I needed was a filter for 2D canvas, even if it would be performing much slower. So I finally had to write the filter myself.