Skip to content
LydiaToolsPublic

About

Batch screenshot redaction. Draw covers once, reuse on matching images, review each, export PNG/ZIP. Works offline. EN/中文.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Maskset · Batch Screenshot Redaction

The username is in the same corner. Why hide it sixteen times?

Draw opaque covers on one screenshot, reuse them on matching-size images, then check every image before downloading. Made for demos, tutorials, support threads and the last cleanup before you share.

Open Maskset · 中文界面 · Download offline HTML · 中文说明

Actual Maskset interface with two covered areas copied across three original synthetic screenshots

Actual application capture. The sample workspace, names and account details are fictional. This is a product demonstration, not customer evidence.

One small job, finished in one place

When you need to… Maskset does this
Hide a repeated username, email or account area Draw solid black rectangles; copy to other images with exactly the same pixel dimensions
Keep an image-specific cover Merge copied covers without deleting existing ones
Check a whole batch Mark each image reviewed; edits reset its review status
Send the result Download flattened PNGs or an ordered ZIP; original files are excluded
Repeat the task next week Save a JSON template containing dimensions and cover positions
Work without a connection Open a single standalone HTML file; no install, account or API key

Up to 16 screenshots, 2 languages, and 1 offline HTML file. PNG, JPEG and WebP input; PNG output at the decoded image's dimensions. No AI generation or OCR.

Try it in a minute

  1. Open the app and click Try a sample, or add your own screenshots.
  2. Drag over the information to hide. Keyboard users can expand Or enter pixel coordinates.
  3. Click Copy covers to matching images. Only images with identical dimensions receive the covers.
  4. Inspect each screenshot, including anything outside the covered areas. Click Reviewed & next.
  5. Download a PNG or the entire ZIP. Outputs are named 001-redacted.png, 002-redacted.png, and so on.

The example screenshots deliberately contain a repeated corner email and a second account area. They illustrate why copying a corner cover alone does not finish a review.

Offline use

Download maskset-offline.html from the latest release, then open it in a current desktop browser. The JavaScript, styles and required licenses are inside that file. The offline build runs with the network disabled.

Templates merge into the selected image and require an exact dimension match. They contain only format, width, height and rectangle coordinates. Imported screenshots, filenames and pixel data are not saved in a template. The batch lives in the current tab; closing or reloading it loses that work. Download results and templates before leaving.

Scope and privacy

  • Covers are opaque black pixels in the exported raster image, rather than movable annotations. Transparent areas flatten onto white. Source metadata and original files are not included in the exported PNG/ZIP.
  • This is a manual tool. It does not find personal information, verify that a cover is sufficient, or guarantee that all sensitive details were removed. Identical dimensions do not guarantee identical layouts; inspect every image.
  • Images and templates are processed in the browser. The app has no upload endpoint, analytics or external model calls. Loading the hosted version still requests its HTML/JS/CSS from GitHub Pages; use the standalone file when you need disconnected operation.
  • Limits: 16 files, 10 MB/file, 60 MB input total; 20 megapixels/image, 60 megapixels/batch, at most 16,384 px per side and 100 covers/image. ZIP output is capped at 120 MB. Large batches may need to be split on memory-constrained devices.
  • Input is limited to PNG/JPEG/WebP headers the app recognizes. Unusual files with very large metadata headers may be rejected. Animated input is not preserved; this is a still-image workflow. Browser decoding, color management and JPEG orientation can affect raster output.

Run from source

Requires Node.js 22+ and Python 3 for the optional preview server.

npm ci
npm test
npm run build
npm run preview
# Open http://127.0.0.1:4173

For browser acceptance:

npx playwright install chromium
npm run test:browser

The browser suite exercises the production build, real pointer drawing, copying with custom covers, review invalidation, three input formats, corrupt and oversized inputs, bilingual/mobile layout, template validation, a real ZIP and standalone offline use. An independent comparison checks every exported sample pixel: inside the covers is opaque black; outside matches the decoded original. These checks validate the tested workflow, not automatic detection or external adoption. See verification details.

Feedback

Open an issue with the task you were doing, browser and image dimensions. Please use a synthetic or already-redacted example rather than posting private screenshots. The first release is an early preview; feedback will guide the next useful change.

MIT licensed. See NOTICE.md for dependencies and synthetic assets. Built by LydiaTools.

About

Batch screenshot redaction. Draw covers once, reuse on matching images, review each, export PNG/ZIP. Works offline. EN/中文.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages