Been experimenting recently with simple image processing routines (e.g. brightness, contrast, gamma transforms) in #javascript. For modest resolution inputs, the performance of a naive implementation is surprisingly good. You can try it out in this #observablehq notebook:
https://observablehq.com/@jake-low/image-processing-point-operations