blit_filtered() can be used to easily implement per-pixel filtered blit functions. All you need to do is provide a callback that can compute the Color for each pixel based on the original Color.