Release Scan Tools v0.1.0
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Scan Tools
|
||||
|
||||
Correct photographed document pages, assemble them, optionally recognize
|
||||
English text, and export images or PDFs without sending content away. Scan
|
||||
Tools is a local-first module in the add·ideas Toolbox.
|
||||
|
||||
## v0.1.0 capabilities
|
||||
|
||||
- Add up to 24 browser-decodable PNG, JPEG or WebP images through a file or
|
||||
camera-enabled picker
|
||||
- Drag four document corners to apply an actual projective correction; handles
|
||||
also support keyboard movement
|
||||
- Rotate in quarter turns, adjust deskew manually, or estimate a text-line
|
||||
correction within ±5 degrees
|
||||
- Tune brightness and contrast, retain colour, convert to grayscale, or create
|
||||
black-and-white pages using Otsu or a manual threshold
|
||||
- Preserve the previous preview until its debounced replacement is ready
|
||||
- Reorder pages with drag and drop, remove them without touching source files,
|
||||
and export the selected page as PNG or JPEG
|
||||
- Assemble every corrected page into A4, US Letter, or source-sized image-only
|
||||
PDFs with a configurable margin
|
||||
- Run optional English OCR using a bundled integer model and same-origin
|
||||
Tesseract.js WebAssembly runtime; edit and download recognized text
|
||||
- Work at nested paths, install as an offline PWA, use the shared system/light/
|
||||
dark themes, and perform no remote content request
|
||||
|
||||
## Honest scope and limits
|
||||
|
||||
This first release does not automatically detect page corners, remove fingers
|
||||
or shadows, process input PDFs, recognize handwriting reliably, or create a
|
||||
searchable invisible PDF text layer. OCR confidence is engine evidence, not an
|
||||
accuracy guarantee. Perspective correction is high-quality bilinear resampling;
|
||||
each new render is lossy unless exported as PNG.
|
||||
|
||||
There are explicit limits of 24 pages, 32 MiB and 80 decoded megapixels per
|
||||
source image, 24 megapixels for a working source raster, 1.2 megapixels for an
|
||||
interactive preview, 10 megapixels per exported page, and 4 megapixels for OCR.
|
||||
Optional OCR loads only after confirmation and may use roughly 100–300 MiB of
|
||||
transient memory. The bundled model is English only.
|
||||
|
||||
Files, decoded pixels, correction settings and OCR text live in memory. The
|
||||
same-origin OCR files are included in the release rather than downloaded from a
|
||||
CDN. Nothing is uploaded, but an exported image or PDF naturally contains the
|
||||
visible page and an exported text file contains the recognized text.
|
||||
|
||||
## Development
|
||||
|
||||
```sh
|
||||
npm ci
|
||||
npm run check
|
||||
npm run test:browser
|
||||
```
|
||||
|
||||
`npm run release:artifact` produces a deterministic ZIP and SHA-256 sidecar.
|
||||
The build copies pinned OCR assets from installed npm packages into the static
|
||||
release; generated `public/ocr/` content is not source-controlled.
|
||||
|
||||
## License
|
||||
|
||||
GPL-3.0-or-later. See [LICENSE](LICENSE). Tesseract.js is Apache-2.0, the
|
||||
English trained data package is MIT, and jsPDF is MIT; release artifacts include
|
||||
the complete generated runtime licence inventory.
|
||||
Reference in New Issue
Block a user