I've put together a small script that blurs images (JPG, WebP, GIF) on the server level. This ensures that even if a user opens an image in a new tab or window (outside of the PHP script/framework), the image will still appear blurred. The script also caches the processed images, so they don't need to be blurred again on subsequent page loads.
It is triggered only for users located in the following U.S. states, as determined by the free MaxMind GeoLite2 database: AR, AL, AZ, FL, GA, IN, ID, KY, KS, NC, ND, NE, MT, MO, MS, OK, SC, TN, TX, UT, VA, WY.
The entire setup consists of three files, plus a small change to the .htaccess file to route all JPG, WebP, and GIF requests through the script. There's no need to modify existing scripts.
The main limitation of this approach is that it only blurs images served from the same domain—embedded or externally hosted images are not affected.
https://avs.quest/