RMwaterMark is an Android application for **automatic, on-device background removal** from photos. It targets users who want a quick way to isolate people or objects without sending images to a server: processing runs **offline** using the open-source **auto-background-remover** library (AI segmentation).
**Core workflow**
1. **Home** — Pick an image from the gallery, take a new photo with the camera, or tap one of three **sample images** to try the feature instantly.
2. **Matting screen** — Preview the original, then tap **Remove background** to run AI processing. A loading state explains that processing may take a few seconds (model load and inference vary by device).
3. **After cutout** — Choose a **background**: transparent (checkerboard preview), white, black, or several solid colors. Use **Compare** to switch to a **side-by-side** view (original vs. cutout) with labels; return to single-image edit when needed. **Save** writes a **PNG** to the gallery (under `Pictures/RMwaterMark` on modern Android). **Choose again** closes the flow to re-select an image.
**Technical highlights**
- **Kotlin**, **Material 3**, **ViewBinding-free** layouts with `ConstraintLayout` / `NestedScrollView` where appropriate.
- **Activity Result API** for gallery (`PickVisualMedia`) and camera (`TakePicture` + **FileProvider**).
- **EXIF orientation** handled when decoding bitmaps so **camera photos** are not shown rotated incorrectly.
- **Internationalization**: default **English** strings in `values/` plus localized `strings.xml` for **Chinese (CN/SG), Spanish, Hindi, Arabic, Portuguese (Brazil), Indonesian, Russian, French, Japanese, German, Korean, Turkish, Vietnamese, Thai**.
- **Adaptive launcher icon** with gradient background, generated foreground art, and a **monochrome** layer for themed icons on Android 13+.
- **Manifest**: camera permission, optional legacy storage permission for old APIs, `tools:replace` for theme merge with the background-remover dependency.
**Build**
- JDK 11+, **Android Gradle Plugin** as in the project.
- Run `./gradlew :app:assembleDebug` from the repository root.
- **JitPack** is required for `com.github.GhayasAhmad:auto-background-remover`.
**Privacy note**
Background removal is performed **on the device**. Images you save are stored using the platform **MediaStore** (or equivalent) like any other gallery export.
**Limitations**
- Quality and speed depend on the bundled model and device performance.
- Very large images are **downsampled** before processing to reduce memory use.
- The UI strings are app-supplied; product copy can be refined per market.