Add jpegtran lossless rotation and EXIF orientation handling
DCT steganography improvements: - Add _apply_exif_orientation() to fix portrait photos encoding rotated - Add _jpegtran_rotate() for lossless JPEG rotation preserving DCT data - Add rotation fallback in extract_from_dct() - tries 0°, 90°, 180°, 270° - Quick header validation to skip invalid rotations efficiently - Fix: wrap debug.print in try/except to prevent extraction failures Web UI rotate tool: - Use jpegtran for JPEGs (lossless, preserves DCT steganography) - Fall back to PIL for non-JPEGs - Dynamic UI shows "DCT Safe" for JPEGs, warning for other formats This enables the workflow: encode → compress → rotate → decode Rotated stego JPEGs can now be decoded by trying all orientations. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
29
TODO-4.2.1.md
Normal file
29
TODO-4.2.1.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Stegasoo 4.2.1 Plan
|
||||
|
||||
## Bugs
|
||||
- [ ] Fix EXIF viewer panel not loading metadata in Web UI
|
||||
- [x] DCT mode: portrait photos export rotated 90° (EXIF orientation not handled)
|
||||
- Added `_apply_exif_orientation()` to apply EXIF rotation before embedding
|
||||
- [x] DCT mode: add rotation fallback (try as-is, rotate 90°, retry on failure)
|
||||
- Added rotation fallback in `extract_from_dct()` with quick header validation
|
||||
- [x] Rotate tool: use jpegtran for lossless JPEG rotation (preserves DCT stego!)
|
||||
- Web UI rotate tool now uses jpegtran for JPEGs
|
||||
- DCT decode rotation fallback now uses jpegtran for JPEGs
|
||||
- Dynamic UI shows "DCT Safe" for JPEGs, warning for other formats
|
||||
|
||||
## Tools Audit
|
||||
- [ ] Web UI tools - full shakedown and fixes
|
||||
- [ ] CLI tools - full shakedown and fixes
|
||||
|
||||
## AUR Packages
|
||||
- [ ] `stegasoo-cli` - standalone CLI package (no web dependencies)
|
||||
- [ ] `stegasoo-api` - REST API package (needs auth overhaul first)
|
||||
|
||||
## API Auth Work (blocking stegasoo-api)
|
||||
- [ ] Implement OAuth2 authentication
|
||||
- [ ] TLS 1.3 support with self-signed certificates
|
||||
- [ ] Figure out cert trust/distribution for clients
|
||||
|
||||
## API Documentation
|
||||
- [ ] Postman collection
|
||||
- [ ] Environment variable templates
|
||||
Reference in New Issue
Block a user