Pierre-Yves Nicolas
7d01493477
Introduce ColorMode enum
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
3681d5771d
Introduce Jpeg class
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
7cd3dfd990
ImageRepository: make jpegBytes and getThumbnail suspend
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
05a8af577c
Refactor UI to remove blocking image loading and support suspend APIs
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
446b915d59
ImageRepository: rotations and thumbnails are not stored on disk anymore
2026-04-01 12:08:07 +02:00
Pierre-Yves Nicolas
69690d5c2a
Splash screen should be dark for dark theme ( #148 )
2026-03-26 11:26:15 +01:00
Pierre-Yves Nicolas
f130d33eba
Avoid swallowing errors during export preparation
2026-03-25 18:47:45 +01:00
Pierre-Yves Nicolas
92914c1730
Make ImageRepository thread-safe ( #147 )
2026-03-25 14:35:17 +01:00
Pierre-Yves Nicolas
516dd75e9c
Fix grayscale PDF export: partial revert of 40314de
2026-03-25 09:06:04 +01:00
Pierre-Yves Nicolas
90287b3389
Compress source JPEG during capture preview rather than later
2026-03-24 20:34:24 +01:00
Pierre-Yves Nicolas
fa619da867
MainViewModel: avoid running IO operations on the main thread
2026-03-24 20:34:24 +01:00
Pierre-Yves Nicolas
40314def4e
Capture: reduce conversions between Mat/Bitmap/ByteArray
2026-03-24 20:34:24 +01:00
Pierre-Yves Nicolas
ceceaf8792
Centralize JPEG compression (also in MainViewModel)
2026-03-22 18:28:17 +01:00
Pierre-Yves Nicolas
a9edfa2b87
Centralize JPEG compression to a single function
2026-03-22 18:09:12 +01:00
Pierre-Yves Nicolas
f336680a69
Upgrade AGP: 8.10.1 -> 8.13.2
2026-03-22 12:53:41 +01:00
Pierre-Yves Nicolas
fe2f37b7e8
Upgrade most dependencies
2026-03-22 12:53:41 +01:00
Pierre-Yves Nicolas
2f3d42049e
Prepare release: v1.17.0
2026-03-20 17:09:01 +01:00
Pierre-Yves Nicolas
1ad586ed8f
Feed basic PDF metadata: date and creator
2026-03-20 16:40:39 +01:00
Pierre-Yves Nicolas
f371be4e14
Layout of rotation buttons should be the same for RTL as for LTR ( fixes #135 )
2026-03-20 15:50:26 +01:00
Pierre-Yves Nicolas
58abc2f3fe
Improve grayscale postprocessing ( #138 )
...
Apply exp() to the Retinex output before normalization, restoring a
linear tone distribution. This improves contrast overall: light gray
content is preserved, and dark content stays dark even when the image
contains deep blacks. The previous normalization compressed all tones
toward the same gray level. Trade-off: shadows and unwanted background
variations are also more visible in some images.
Other:
- stretch toward white using histogram mode
- fall back to simple normalization on documents with large dark areas
- add bilateral denoising
2026-03-20 11:40:58 +01:00
Pierre-Yves Nicolas
0e8037fa8d
Export: fix SecurityException when tapping "open" ( #133 )
2026-03-14 14:52:24 +01:00
Pierre-Yves Nicolas
cd4206b413
Prepare release: v1.16.0
2026-03-10 11:42:21 +01:00
Pierre-Yves Nicolas
dea8bcc389
Export: avoid silencing issues in applyRenaming
2026-03-10 09:38:13 +01:00
Pierre-Yves Nicolas
8666fce250
Right-to-left: fix target position of post-capture animation ( #122 )
2026-03-09 15:02:41 +01:00
Pierre-Yves Nicolas
8784c0b923
Extract strings rotate_left and rotate_right (used for icon descriptions)
2026-03-09 10:55:31 +01:00
Pierre-Yves Nicolas
3d70abbac2
Right-to-left: fix rotation buttons ( #121 )
2026-03-09 10:28:38 +01:00
Pierre-Yves Nicolas
68531bf4e3
Fix quad stabilization ( fix #131 )
2026-03-09 09:26:13 +01:00
Pierre-Yves Nicolas
c62fba87d8
Simplify code for live analysis
2026-03-08 14:53:03 +01:00
Pierre-Yves Nicolas
4e3cc95979
Run segmentation and quad detection in sequence to avoid CPU contention
2026-03-08 14:22:59 +01:00
Pierre-Yves Nicolas
343495dafe
New quad algorithm: identify edges from contour orientation ( #130 )
...
Goal: improve precision of automatic document cropping by switching:
- from Douglas-Peucker algorithm (OpenCV's approxPolyDP) + a heuristic for documents missing a corner
- to an algorithm that looks for edges
* New quad algorithm: identify edges from contour orientation
* Performance optimization: reduce number of calls to trigonometric functions
* Performance: use a single threshold for live analysis
* Fix orientation of debug mask and compute it only if required
* Exclude quads that go out of the frame
2026-03-07 12:09:41 +01:00
Pierre-Yves Nicolas
cf196576fe
Arabic: fix MissingQuantity for page_count and files_saved_to
2026-03-03 11:47:27 +01:00
jermanuts
ca7cdce0e1
Add Arabic translation
2026-03-03 11:47:27 +01:00
Pierre-Yves Nicolas
d26f4048d2
GitHub action: upload APKs for PRs ( #123 )
2026-03-02 21:06:44 +01:00
ninjum
ee7c301f08
Create galician translation (gl) ( #119 )
2026-03-01 12:22:44 +01:00
Pierre-Yves Nicolas
f70ea33fcc
Prepare release: v1.15.0
2026-02-25 17:25:24 +01:00
Pierre-Yves Nicolas
e52942e618
Upgrade fairscan-segmentation-model to v1.2.0
2026-02-25 16:42:34 +01:00
Pierre-Yves Nicolas
40f17eb571
evaluation: add tools for segmentation and quads
2026-02-25 16:26:58 +01:00
Pierre-Yves Nicolas
75b677ebbc
evaluation: resize segmentation input with OpenCV to reduce difference with Android results
2026-02-16 20:50:23 +01:00
Pierre-Yves Nicolas
a2ae0440b6
Prepare release: v1.14.0
2026-02-11 09:17:58 +01:00
Pierre-Yves Nicolas
0456a5329f
Improve processing of color documents: retinex + contrast
2026-02-11 07:29:58 +01:00
Pierre-Yves Nicolas
933f00dba6
Add missing calls to Mat.release()
2026-02-11 07:29:58 +01:00
Pierre-Yves Nicolas
c04f5a6fd2
Update README.md and screenshots
2026-02-04 17:35:30 +01:00
Pierre-Yves Nicolas
c16b0d64bd
Prepare release: v1.13.0
2026-02-03 18:42:45 +01:00
Pierre-Yves Nicolas
2c23978002
Update description and screenshots for F-Droid
2026-02-03 18:19:47 +01:00
Pierre-Yves Nicolas
60f6e404a8
CameraScreen: fix torch state persistence (broken by previous commit)
2026-02-03 16:54:46 +01:00
Pierre-Yves Nicolas
b73dc20bd5
CameraScreen: avoid ghost quads when live analysis starts
2026-02-03 07:40:40 +01:00
Pierre-Yves Nicolas
9cdff7e74b
Preview CameraScreen with different devices
2026-02-02 17:26:30 +01:00
Pierre-Yves Nicolas
c91237cd2f
Export: avoid running preparation when it's useless
2026-02-02 16:43:41 +01:00
Pierre-Yves Nicolas
b135e8108a
Export screen: persist (in-memory) filename during scan
2026-02-02 13:58:34 +01:00
Pierre-Yves Nicolas
974666f071
Export screen: style improvements
2026-02-01 20:56:02 +01:00