Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lossless partial blur (blur only a face but leave all other JPEG blocks untouched) #33

Open
nicolas-raoul opened this issue Apr 6, 2022 · 1 comment
Labels
feature request help wanted Extra attention is needed wontfix This will not be worked on

Comments

@nicolas-raoul
Copy link

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:

  1. Use lossless crop to split the picture into elementary JPEG blocks.
  2. Overwrite the JPEG blocks where blurring was applied (these blocks will obviously not be lossless).
  3. 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!

@k3b
Copy link
Owner

k3b commented Apr 6, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request help wanted Extra attention is needed wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

2 participants