Open-source project
rosuH/EasyWatermark avatar
rosuH/EasyWatermark

EasyWatermark: an offline Android watermark app for ID photos and sensitive images

Project brief: Securely, easily add a watermark to your sensitive photos. .

1,892 stars155 forksKotlinMIT

At a glance

What is it?
EasyWatermark is a Kotlin Android app that stamps text or image watermarks onto photos entirely on-device. It is built for people who have to send copies of ID cards, and its main trade-off is that it does not try to stop leaks, only reduce what a leaked file is worth.
Who is it for?
EasyWatermark fits people who regularly hand over ID cards, hand-held ID photos, or pre-release samples and want a stamp applied locally on an Android phone. It does not fit anyone who needs batch processing on a desktop, automated pipelines, or a watermark that survives a determined crop.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem EasyWatermark targets: photos you must hand over

The README frames the use case narrowly. It is for situations where you need to submit a photo ID, a hand-held photo ID, or another sensitive image. The examples given are national real-name verification, where front and back photos of an ID card are uploaded, and pre-project previews or copyrighted samples. The stated goal is not to prevent a leak. The README says the app cannot prevent information from being uploaded or leaked, and that the aim is to reduce the value of the information if it does leak. There is a blunt line about at least being able to annoy the leaker. That framing matters, because it tells you what the tool is not: it is a deterrent, not access control. The intended audience is an individual on Android who has to send a document copy and wants a visible overlay saying what the photo is for. The README suggests reference text such as a sentence stating the photo is for a specific purpose only, with transparency turned down so key information stays readable.

How the watermarking works, and what the app deliberately leaves out

The feature list describes two watermark content types: text and image, the latter also called stickers. Style controls cover font color, font style, transparency, font size, and rotation angle. Layout controls cover horizontal and vertical intervals between watermark repetitions, and the app automatically repeats the watermark across the full picture. So the output is a tiled overlay rather than a single corner mark, which is the standard way to make a crop-and-reuse attempt harder. On the privacy side, the README states the app is pure offline, with no stats, tracking, device IDs, or crash reporting, and that all third-party tracking SDKs were given up. Users on API 29 and above do not need to request any permissions; users on API 28 and below must approve storage permission to access and store photos. That permission split is the most concrete technical constraint in the README, and it is worth reading twice: the privacy story is strongest on newer Android versions. The README also notes that because crash reporting was removed, crash information has to be shared manually.

Installing EasyWatermark on Android

There is no build-from-source tutorial in the README, and no command-line install. Distribution is through app stores and the GitHub release page. The README lists developer-led download channels: GitHub Releases, Google Play, F-Droid, and Coolapk. It notes that the Google Play listing is the paid version with the same code, described as a way to buy the developer a cup of tea, and that the GitHub release channel is where the project says you always stay up to date. It also warns that all other channels are not developer-driven and should be screened carefully. The repository layout includes an app/ module and standard Gradle files, so a source build is possible in principle, but the README does not document it. If you install from F-Droid or GitHub Releases, the first real use is: open the app, pick a photo, choose text or image watermark, set color, size, transparency, and rotation, adjust the horizontal and vertical spacing so the tiling covers the image, then export. The README does not document an export path or file naming, so check the app itself. On API 29 and above the app should not ask for storage permission; on API 28 and below it will, and that prompt is expected rather than a bug.

Where EasyWatermark is the wrong tool

The README is unusually honest about the ceiling. Watermarking a photo does not stop the photo from being uploaded, forwarded, or leaked. It only changes what a leaked copy is worth. If your threat model includes someone who will crop the image, run it through a watermark remover, or reconstruct the document, a visible tiled overlay is a speed bump, not a barrier. There is also a practical failure mode around transparency: the README advises turning transparency down so the watermark does not block key information, which means the same setting that makes the document readable also makes the watermark easier to remove. That is a real tension, not a configuration mistake. The tool is also Android-only. The repository contains desktopApp/ and iosApp/ entries, but the README does not document them as supported distribution channels, so treat them as unverified. Anyone who needs to stamp hundreds of files on a server, integrate watermarking into a CI job, or process PDFs should look elsewhere; this is an interactive phone app, not a library.

How EasyWatermark differs from Watermarkly and other watermark tools

The related searches around this project mix it up with eZy Watermark, Watermarkly, and various bulk watermark services. The difference in approach is worth stating plainly. EasyWatermark is a local Android application with the source published under MIT, and its selling point in the README is the absence of tracking, stats, device IDs, and crash reporting, plus offline operation. Web-based tools such as Watermarkly run in a browser, which usually means the image is uploaded to a server before it comes back stamped. For an ID card photo, that round trip is exactly the exposure the README is trying to avoid. Bulk services aimed at e-commerce, such as Shopify or Addify image watermarking, optimise for catalog-scale automation rather than for one sensitive document. Desktop eZy Watermark products cover Windows and offer batch workflows that EasyWatermark does not document. If your priority is throughput and platform coverage, the desktop and web tools win. If your priority is that the original never leaves the phone, EasyWatermark's offline design is the relevant difference.

Maintenance, licence, and what upgrading costs you

The repository is not archived. The last push was on 2025-10-26, and the most recent release listed is 2.10.0 on the same date. The release history is uneven: 2.9.4 shipped on 2024-09-13, 2.9.6 on 2025-08-30, and 2.10.0 on 2025-10-26. That gap between September 2024 and August 2025 is worth knowing if you depend on timely fixes. Because the app is distributed through stores, the practical upgrade cost is low for users: install the update from GitHub Releases, Google Play, or F-Droid. There is no server component and no data migration described in the README. The licence is MIT, which is permissive and allows forking; the README explicitly invites you to fork your own version. Two things sit outside the MIT grant and deserve a look before you redistribute anything: the README states that all rights to the UI and related design resources belong to the designer and may not be used without permission, and the repository carries a THIRD_PARTY_NOTICES.md file. This is a description of the repository, not legal advice; if you plan to ship a fork, read the licence and notices yourself.

Editorial conclusion

EasyWatermark fits people who regularly hand over ID cards, hand-held ID photos, or pre-release samples and want a stamp applied locally on an Android phone. It does not fit anyone who needs batch processing on a desktop, automated pipelines, or a watermark that survives a determined crop. Before adopting it, confirm that your device runs API 29 or above so no storage permission is requested, and read the repository's README to see how transparency and repeat layout behave on your own image.

Frequently asked questions

Is a watermark good or bad?

EasyWatermark's README treats a watermark as a way to reduce the value of leaked information rather than to prevent the leak. It states the app cannot prevent information from being uploaded or leaked, and that the goal is to make the leaked copy less useful.

What is the best free watermark app?

The README does not compare EasyWatermark with other watermark apps. It lists its own developer-led download channels as GitHub Releases, Google Play, F-Droid, and Coolapk, and warns that other channels are not developer-driven.

Can you give me an example of a watermark?

The README suggests reference text along the lines of a sentence stating the photo is for a specific purpose only, with no other use. It also supports image watermarks, which it calls stickers.

What is the purpose of a watermark?

In EasyWatermark's framing, the purpose is to mark a sensitive photo such as an ID card or a hand-held ID photo before you submit it. The README says the app cannot stop a leak, but it can reduce the value of the leaked information.

Official sources

  1. Official README
  2. Project repository
  3. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/rosuh-easywatermark.svg)](https://hysenlabs.com/projects/rosuh-easywatermark)