Lossless partial blur (blur only a face but leave all other JPEG blocks untouched)
With privacy expectations increasing, I often have to blur people's faces on pictures (when uploading to Wikimedia or sending emails for instance). While there are many blurring apps, all apps I have tried introduce loss in all parts of the picture, instead of only the blurred area and surrounding JPEG blocks (example).
It would be great if LLCrop (which is already great for lossless rotation and cropping) could support lossless blurring. Of course the blurred part and surrounding JPEG blocks will have loss, but the rest of the picture should be left intact.
Suggested algorithm:
- Use lossless crop to split the picture into elementary JPEG blocks.
- Overwrite the JPEG blocks where blurring was applied (these blocks will obviously not be lossless).
- Join the JPEG blocks together into a full picture and save it.
jpegtran implements the lossless join operation (calling it -drop), so it could be used as a reference.
For the UI, anything is fine but here is my suggestion: A round tool of configurable diameter makes the touched area turn red until the finger is lifted. After the finger is lifted, the whole area is repainted using the average color of that area. This kind of blurring is more reverse-proof than pixelization or Gaussian blur, yet less visually distracting than a black rectangle.
Thanks a lot for your great apps!
Hello Nicoloas. Thankyou for your suggestion.
For me the lossless operation is only a black box (a java wrapper around a c++ library, implemented by facebook as opensource) that my app use. I donot knowhow how to implement Nearly-lossless-bluring and i will not spend time learning to it.