A standalone desktop application for easy texture extraction & deskewing from images.
Textract allows you to load images, mark sections to extract (such as signage, product labels, or building), apply a perspective warp and pack the flattened output into custom texture atlas or export them individually.
- Dual-Pane Interactive Workspace:
- Mark Canvas (Left): Load source images and mark sections to extract.
- Atlas Canvas (Right): Arrange extracted textures into an atlas or to export individually.
- Perspective Correction: - Extremely fast using imageproc and rayon for parallelism.
- Grid Snapping - With custom grid sizes.
- Atlas Export: Arrange your textures into a single atlas for export.
- Individual Export: Export textures individually.
- Auto Updater: Simple one-click updater to get the latest features and fixes.
graph LR
A[1. Load Images] --> B[2. Place Marks]
B --> C[3. Extract]
C --> D[4. Export]
- Load Images: Load PNG, JPG, JPEG, or BMP files.
- Place Marks: Hold
Ctrland click four points to form a rect around your target texture. - Extract: Hit
Shift + Ror click the Convert button. - Export: Position the extracted textures on the Atlas Canvas and export!
Textract is designed for speed. Below is a cheat sheet of shortcuts:
| Action | Key / Gesture |
|---|---|
| Pan Canvas | Scroll wheel click + Drag or Drag Stage |
| Zoom Stage | Scroll Wheel |
| Context Menu | Right Click |
| Select All | Ctrl + A |
| Delete Image | Delete (with image selected) |
| Action | Key / Shortcut |
|---|---|
| Load Images | Shift + A |
| Add Mark Point | Ctrl + Left Click (on image) |
| Reset Point Selection | Right Click (while marking) |
| Process/Convert | Shift + R |
| Remove Mark | Alt + Left Click (on mark) |
| Action | Key / Shortcut |
|---|---|
| Export Atlas | Ctrl + E |
| Export Selected | Ctrl + S |
-
Frontend:
-
Backend & Core:
- Tauri v2 (Secure, fast desktop framework)
- Rust Backend:
imageproc(Warping, bilinear interpolation, geometric transformations)rayon(Data parallelism for multi-threaded mark processing)base64(Base64 encoding/decoding for inter-process communication)
- Github Actions

