Coder Social home page Coder Social logo

akylas / oss-documentscanner Goto Github PK

View Code? Open in Web Editor NEW
617.0 5.0 22.0 28.14 MB

Android document document scanning app

Home Page: https://www.akylas.fr

License: MIT License

Ruby 0.54% TypeScript 18.78% JavaScript 1.95% SCSS 0.19% Svelte 14.98% Kotlin 6.11% Objective-C 0.18% CMake 0.15% C++ 54.65% Objective-C++ 1.24% Shell 0.03% HTML 0.01% Swift 1.15% C 0.05%
android document document-scanner opencv pdf scanner tesseract zxingcpp document-scanner-app document-scan

oss-documentscanner's Introduction

This repository is now the home of 2 apps

Contributor Covenant GitHub repo stars GitHub License GitHub All Releases GitHub release GitHub release

Small translation badge

Installation

OSS Document Scanner Oss CardWallet
Get it on IzzyOnDroid Get it on IzzyOnDroid
Get it on PlayStore Get it on PlayStore
Get it on GitHub Get it on GitHub
Download on the App Store Download on the App Store
Get it on Obtainium Get it on Obtainium

Enjoying OSS Document Scanner or OSS Card Wallet?

Please consider making a small donation to help fund the project. Developing an application, especially one that is open source and completely free, takes a lot of time and effort.


Open Source app to scan your documents.

Screenshots

| | | |

| | | |

Having issues, suggestions and feedback?

You can,

Contributors

Thanks to our contributors:

Languages: Übersetzungsstatus

Übersetzungsstatus

The Translations are hosted by Weblate.org.

Feature Graphic generated with hotpot.ai

Building Setup

This repo can be used to build 2 different apps: OSS DocumentScanner and OSS CardWallet

Those apps are using Nativescript which is a cross platform framework to build apps for iOS/Android

Setup / Environment

This project uses a few environment variables. While most are for publishing and thus not necessary for most, some are used to decide which app to build:

  • APP_ID: com.akylas.documentscanner or com.akylas.cardwallet
  • APP_BUILD_PATH: build/documentscanner or build/cardwallet
  • APP_RESOURCES: App_Resources/documentscanner or App_Resources/cardwallet

You can either define them yourself. If you are using vscode the vscode/settings.json of this repo defines different custom shells which will try to source .env.documentscanner and .env.cardwallet. To do this it use the plugin dotenv from omzsh here If those variables are not define the project will default to variables for OSS DocumentScanner

Nativescript

First setup Nativescript

This project is optimized to be built with Akylas Fork. Though it would work with main it is best to use this fork. The package.json defines a resolution to ../NativeScript/dist/packages/core so clone the fork and build it using npm run setup:yarn && npm run ui-mobile-base:build && npm run core:build

Another change is that this project uses new features of the Nativescript cli which were not released yet. So for now you need to clone it, build with npm run setup then use it with PATH_TO_CLI_FOLDER/bin/ns

3rd parties

This app also uses opencv and tesseract. I did not include the libraries in git because there are huge and would make the github repo too big. There are 2 ways to install them:

  • download from here and uncompress them at the root
  • build them yourself:

OpenCV

  • Android: You can download Opencv 4.8.0 for android here. Then place the necessary libs/includes in the opencv/android at the root of this repo like shown here: opencv directory structure

  • iOS : You can download Opencv 4.8.0 for iOS here. Then place the opencv2.xcframework in the opencv/ios at the root of this repo

This should be enough. Android and iOS build will use it using symlinks

Tesseract

It is a bit trickier for Tesseract as we need to compile it

  • Android:

    • clone https://github.com/Akylas/Tesseract4Android
    • build with ./gradlew assembleRelease
    • search for the built static libs (search for libtesseract.a) in tesseract4android/build/intermediates/cxx/*/obj
    • copy the static libs and the includes(in tesseract4android/src/main/cpp/tesseract/src/include) in the tesseract/android at the root of this repo like shown here: opencv directory structure
  • iOS:

Yarn

You need to use yarn with this project as it uses the portal: protocol for some dependencies. Note that the project has some yarn link for easy local dev for me. The best is for you to remove the resolutions part of the package.json

Building

Now that all is setup and that you prepared the 3rd party libraries you can actually build and run the app:

  • yarn
  • ns run android --no-hmr --env.devlog (replace by ios for iOS...)

This should run the app on the first discovered device or emulator.

oss-documentscanner's People

Contributors

aimpizza avatar aksiom avatar alr86 avatar antonindelfabbro avatar argocarpathians avatar brunoalr avatar comradekingu avatar ericmgvs avatar fallsdevil avatar farfromrefug avatar fjuro avatar flipflop97 avatar hexak12 avatar himra avatar ishi-sama avatar jspast avatar maqu630 avatar martin-winfred avatar neau avatar nionor avatar oersen avatar pegioner avatar santossi avatar sguinetti avatar stxm avatar symbuzzer avatar translucentfoxhuman avatar vreausexxx avatar xlucn avatar zenerdeveloper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

oss-documentscanner's Issues

Add a pdf toolkit

Please add a pdf toolkit like

  1. Pdf converter (pdf to jpg/png, doc and doc, excel to pdf)
  2. Pdf size Reducer
  3. Combined files
  4. Modify scan
  5. Share as long image
  6. Lock & unlock pdf
  7. Add Watermark
  8. Brush & Colors
  9. Marker & highlighter
  10. Add icons, shapes
  11. Add signature
  12. Add image
  13. Multiple images in a single page (Collage maker) for identity card.

Request: Reorder pages

During a scan sometimes you capture something in the wrong order, reordering would be a useful feature.
Long press + drag should be almost intuitive when browsing the document pictures.

Google Drive support

The app is so awesome and underrated at the same moment.
Purely competent to adobe scan.
just curious if google drive support addition will be possible so that the content can be backed up also.

Language selector not working

Lamguage selector shows all available languages but after tapping on a language the popout closes and the language remains English

Android 14

Enabling biometric lock prevents app from functioning

Device and App information:
S21 Ultra 5g
Android 13 June 1st security patch
App version 1.2.12 Build 22 (Originally build 21 from Izzyondroid, Updated to 22 from github)

Issue
After enabling both biometrics and automatic biometric lock, the app won't open at all. It briefly shows the login prompt but quickly closes. Logs don't reveal much.

If I tap on the icon and the cancel button location at the same time, it will occasionally open but no documents are shown and no buttons work.

Screen Captures

Trim_2023-12-28_23-00-29.mp4

If I tap on the icon and the cancel button location at the same time, it will occasionally open but no documents are shown and no buttons work.

Screenshot_20231228_231329_OSS Document Scanner

I can provide any logs if you think they would prove useful, but again not much is shown (app starts, biometrics start, app closes, biometrics cancelled)

black UI text in dark mode

In dark theme, text in some menus (like the theme switcher or the enhancement menu) uses black text instead of white, which makes it hard or even impossible to read.

Screenshot of the theme switcher menu with dark theme

Screenshot of the theme switcher menu with light theme

Add pdf converter

Please add converter (like pdf to jpg/png, doc etc. doc, excel to pdf)

Owncloud WebDAV connection

Thanks for a great document scanner, I can finally ditch the proprietary app I've been using and go more open source 💪

I'm unable to connect to my Owncloud or Nextcloud instances (I have both), trying various server addresses. To eliminate problems on the server end, I've connected through Ghost commander by specifying:
Server: owncloud.mydomain.com:443
Path: remote.php/webdav

In Document Scanner, I've tried for example these for server address:
owncloud.mydomain.com:443/remote.php/webdav
https://owncloud.mydomain.com/remote.php/webdav
https://owncloud.mydomain.com/remote.php/webdav/
I have also tried putting everything after the domain in the remote folder option.

How am I supposed to put in my server address?

Cannot download Tesseract data

I always get a timeout error message, when I want to download the tesseract ocr data:

java.net.SocketTimeoutException: failed to connect to github.com/... from ... after 100000ms

I disabled all adblock things on the phone and my network.

Does someone outthere also have this issue?

[Feature Requst] Batch scan

Another feature which will makes lives easier is to add an option in which we can scan images in batches of them, and when we convert them into PDF it will be a single document or different scanned files.

Thanks a lot for your work.
Hope so this project touches new heights of success :)

[Suggestion]s Add gallery export and high quality scanning.

Gallery export:

  • I would like to export the scans I make as .png or .jpeg and save them to the file system individually.

High quality scanning:

  • This is a very difficult demand and I know that. I would like to be able to make scans of higher quality (in terms of resolution/blur) than my phone's camera by combining multiple closeup pictures that fit only a part of the document (+ a normal scan if that helps with algorithm implementation). As far as I know no other document scanner app has a feature like that, so if it was implemented it would be a big win over CamScanner and MS Lens.

Thanks for the hard work on the app, keep up the good work!

Crashes on app start

Unable to open the app (Build 16) after updating to Android 14. Not exactly sure if it's related to Android 14 directly or not though.

Log:

FATAL EXCEPTION: main
Process: com.akylas.documentscanner, PID: 4997
com.tns.NativeScriptException: Calling js method onBindViewHolder failed
TypeError: t.forEach is not a function
	at com.tns.Runtime.callJSMethodNative(Native Method)
	at com.tns.Runtime.dispatchCallJSMethodNative(SourceFile:1)
	at com.tns.Runtime.callJSMethodImpl(Unknown Source:100)
	at com.tns.Runtime.callJSMethod(SourceFile:1)
	at com.tns.Runtime.callJSMethod(SourceFile:2)
	at com.tns.Runtime.callJSMethod(SourceFile:3)
	at com.tns.gen.com.nativescript.collectionview.AdapterInterface.onBindViewHolder(Unknown Source:17)
	at com.nativescript.collectionview.Adapter.onBindViewHolder(SourceFile:2)
	at com.nativescript.collectionview.Adapter.onBindViewHolder(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:155)
	at androidx.recyclerview.widget.RecyclerView$Recycler.i(SourceFile:72)
	at androidx.recyclerview.widget.RecyclerView$Recycler.j(SourceFile:62)
	at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:6)
	at androidx.recyclerview.widget.k0.b(SourceFile:54)
	at androidx.recyclerview.widget.GridLayoutManager.D(SourceFile:99)
	at androidx.recyclerview.widget.LinearLayoutManager.t(SourceFile:49)
	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(SourceFile:748)
	at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(SourceFile:45)
	at androidx.recyclerview.widget.RecyclerView.s(SourceFile:61)
	at androidx.recyclerview.widget.RecyclerView.q(SourceFile:72)
	at androidx.recyclerview.widget.RecyclerView.onLayout(SourceFile:8)
	at com.nativescript.collectionview.RecyclerView.onLayout(Unknown Source:0)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at org.nativescript.widgets.CommonLayoutParams.layoutChild(SourceFile:377)
	at org.nativescript.widgets.GridLayout.onLayout(SourceFile:238)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at org.nativescript.widgets.CommonLayoutParams.layoutChild(SourceFile:377)
	at org.nativescript.widgets.GridLayout.onLayout(SourceFile:238)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at org.nativescript.widgets.CommonLayoutParams.layoutChild(SourceFile:377)
	at org.nativescript.widgets.ContentLayout.onLayout(Unknown Source:43)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1638)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
	at com.android.internal.policy.DecorView.onLayout(DecorView.java:789)
	at android.view.View.layout(View.java:24430)
	at android.view.ViewGroup.layout(ViewGroup.java:6440)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:4317)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3642)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2514)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9398)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1471)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1480)
	at android.view.Choreographer.doCallbacks(Choreographer.java:1076)
	at android.view.Choreographer.doFrame(Choreographer.java:1004)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1447)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:232)
	at android.os.Looper.loop(Looper.java:334)
	at android.app.ActivityThread.main(ActivityThread.java:8291)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:557)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:981)

[FR] Viewfinder is too big

The viewfinder is very big, it's very hard to capture a document. I meant changing the aspect ratio of it (i.e making it small) will be very good. See CamScanner's and DocScanner's viewfinder for example
• Auto capture is very useful for capturing docs in batches
Thanks

[Bug]. Import/Export Function is broken

Steps to reproduce:

  1. Export config.
  2. Import config
  3. Click on "Restart" -> The following Message appears: Cannot read properties of undefined (reading 'getActivity')

It needs to be checked whether this is a bug in import or export.

Here's the config file:
alpimaps_settings_2023-12-17.json

OSS Document Scanner Version: 1.1.4 Build 9

System & Device Info:
OS version: 9
Bootloader: G950FXXUCDVI1, VM: ART
Kernel: 4.4.111-21427293
Brand: samsung, Model: SM-G950F
Board: universal8895, Manufacturer: samsung

SDK
Target: 28, Min: 17

Security
Root: false
Encryption: Encrypted (FDE)
Patch level: April 1, 2021

translations

Hi @farfromrefug
Great to see another awesome app from you, after OSS weather and AlpiMaps.
I'd like to translate it in German, using weblate or transifex. Would that be possible?
Cheers!

Crash when deleting first scanned document

Caught this when deleting my first scan before saving it.

Afterwards the app closes instantly when I try to open it.

FATAL EXCEPTION: main
Process: com.akylas.documentscanner, PID: 22200
com.tns.NativeScriptException: Calling js method onBindViewHolder failed
TypeError: Cannot read properties of undefined (reading 'id')
	at com.tns.Runtime.callJSMethodNative(Native Method)
	at com.tns.Runtime.dispatchCallJSMethodNative(SourceFile:1)
	at com.tns.Runtime.callJSMethodImpl(Unknown Source:100)
	at com.tns.Runtime.callJSMethod(SourceFile:1)
	at com.tns.Runtime.callJSMethod(SourceFile:2)
	at com.tns.Runtime.callJSMethod(SourceFile:3)
	at com.tns.gen.com.nativescript.collectionview.AdapterInterface.onBindViewHolder(Unknown Source:17)
	at com.nativescript.collectionview.Adapter.onBindViewHolder(SourceFile:2)
	at com.nativescript.collectionview.Adapter.onBindViewHolder(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:155)
	at androidx.recyclerview.widget.RecyclerView$Recycler.i(SourceFile:72)
	at androidx.recyclerview.widget.RecyclerView$Recycler.j(SourceFile:1142)
	at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:6)
	at androidx.recyclerview.widget.i0.b(SourceFile:54)
	at androidx.recyclerview.widget.GridLayoutManager.C(SourceFile:99)
	at androidx.recyclerview.widget.LinearLayoutManager.s(SourceFile:49)
	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(SourceFile:748)
	at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(SourceFile:45)
	at androidx.recyclerview.widget.RecyclerView.s(SourceFile:61)
	at androidx.recyclerview.widget.RecyclerView.q(SourceFile:72)
	at androidx.recyclerview.widget.RecyclerView.n(SourceFile:91)
	at androidx.activity.j.run(SourceFile:246)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
	at android.view.Choreographer.doCallbacks(Choreographer.java:899)
	at android.view.Choreographer.doFrame(Choreographer.java:827)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7924)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

[Feature Request] Auto crop

This project is amazing, most of the other OSS scanners just left after 1-2 updates, but man you're amazing.

I'd like to request a feature, using which each photo we click can be cropped automatically if possible. As seen in several proprietary softwares like camscanner, and xyz

Blank screen after splash screen

With the recent updates starting from version 1.2.5.13 the App doesn't work for me anymore. After the splash screen the screen turns blank and nothing happens. Even if I clear the App data. In this case after the spash screen storage permission is requested and then the screen turns blank. Version 1.2.5.12 is the last one that works.

This is on a device running Android 10.

Icon

Add material themed icon becoz it ruins my home screen

1.0.3 Version 4

There is a problem, we cannot download this version.

On the Github application, the APK file is available, but when we click on it, there is an error message and it redirects to a Github page (file is missing).

And when using the internet browser, there are only source files.

Main document animation is backwards

When you open the app there is an animated icon of a scanner going back and forward on a document.

The animation is in reverse as the trail seems to appear and head towards the direction the bar is moving rather than behind it.

Feature Request: Export to File

In the current version of the app, pressing the PDF button opens the newly exported PDF in the default PDF viewer, and mine doesn't have a save to disk button because I'm using a non-gapps rom. I would love to see an option to export the PDF directly to a file rather than opening it.

Thanks for making this app by the way. There aren't very many open-source scanners that are modern. The app looks great so far!

Folder permissions on export do not persist

Hi, this is a continuation from #1

When exporting to a different folder from the last one that was exported to, I have to accept permissions for it again even though the folder has been used before.

Expected behavior:
Accepted folder permissions persist

I'm not an Android developer but I searched around and it seems with SAF you have to grant persistable permissions otherwise it asks again: https://stackoverflow.com/questions/32563428/storage-access-framework-persist-permissions-not-working

Won't Export PDF

Getting an error toast THIS CANVAS SCALE IS NOT A FUNCTION, then app simply gets stuck in a loop attempting to export. I'm running a stock Samsung Galaxy Tab A7 tablet with Android 12. Perhaps this issue has something to do with Samsung's photo editor messing things up? Using v1-1-2-7

WebDav support

Screenshot_20231207-104924.png

How do I get to sign up for this WebDav support? Is there any subscription required to sign up for this WebDav configuration? Please guide me.

App crash during English text download

Whin I click on the text recognition button it pops to select language and language and quality l, here I click start. It automatically trys to download English language but the app crashes.

Filters on scanned document not getting exported.

Steps:

  • scan a new document
  • apply BW or any other filter like invert (notice the preview applies the filter)
  • hit share icon, and save.
  • the output image does not contain the filters applied.

The enhancements like Enhance/whitepaper/color when saved through share icon are applied correctly to the output image.

I only need to save the output with filters applied, which does not work.

Thanks for this app..

Feature Request: Zoom in lens when selecting border points

In Microsoft PDF Lens there is the feature where if you want to rearrange the border points of the scanned document, you get a little zoomed in circle of where to put the border point. With that you don't have to look below your finger where it touches the screen. This would make rearraging the border points way easier. If you don't know what I mean with that, I'll get a screenshot of this feature.

Monochrome icon

Could you add a monochrome icon please? Great app by the way!

Syncing Issues

Hi,

Fantastic little app - many thanks and well done.

Would you mind clearing something up please...?

I set up the webdav sync, clicked on test and got the 'successful' reply. However, the sync circle is dimmed out and it just doesn't seem to sync any documents.

Have I missed doing something?

Version 1.0.2 build 3
Android 10

Thanks.

Bug: Impossible to take a picture from app.

Hello,

Your application works like a charm... Except when I want to scan by taking a photo directly.
Here's how I do it:

  • I open the application (I give it the rights for the camera if necessary).
  • I take a sheet of paper and place it on a background of a different color.
  • I press the icon at the very bottom right to take a photo.
  • The application detects the edges of my sheet in real time.
  • But when I press the button to take the photo, the application seems to take the photo. Then, after a second, it displays the following error: "java.lang.Exception: OpenCV(4.8.0) /home/ci/opencv/modules/core/src/matrix.cpp:424:error: (-215:Assertion failed) total() == 0 || data != NULL in function 'Mat'".

On the other hand, I can load a photo from my local storage space, and there no problem.

Here's my hardware configuration:

Thanks in advance for anything you can do ;)

Out of focus images - "wrong" camera used by default

Hello!

Great app so far, Ive following it to replace onedrive's doc scan feature.

I'm archiving low value handwritten notes and noticed the following:

  • When the viewfinder is open, there is a significant "fish eye" effect in the page being scanned
  • After taking the shot, the overall image is relatively out of focus

What I tried:

  • Taking a picture in the default camera app, in the same conditions, with all "scene optimizations" disabled = The result was way better with the written word being well defined across a whole A4 page
  • The "1x" camera is used

What I noticed:
The default camera used in the scan viewfinder is the "0.6x" zoom one (as in the default camera app).
Zooming in in the scan viewfinder, the '1x' camera is used, the fish eye effect is not there, and checked by covering the cameras individually.
Can something be done to use the '1x' cam by default?

Obs:
When the '1x' camera was used the edge detection and preview worked as expected, but the image was not automatically saved, selecting the checkmark to save resulted in app crash, let me know if this should be a separated issue.

Build used:
v1.2.7 Build 17 from Izzydroid repo

Smartphone used:
Base Samsung S23 - Android 14 - One UI 6.0

App freezes after image capture and scanning text

I don't know if this is fixed with newer versions but due to bug #29 I can only test up to version 1.2.5.12.
After recording the image and defining the capture region the preview is shown but it says "computing..." forever. Closing the App and reopening allows to continue with scanning the text.
When scanning the text, again it gets stuck at detecting text (100%)... Closing the App and reopening allows to take a look at the scanned text.

This is on a device running Android 10.

[Bug] PDF export

When exporting landscape-oriented scans, some of the images are clipped / positioned partially out of the page.

Does PDF pages have to be fixed size (A4 I presume) - I would prefer them exported just as they are.

Improvements regarding "whitepaper" feature.

I just wanted to let you know you're doing an amazing work on this project. It's baffling to me seeing the quality of the app as it's very intuitive, easy to use and free ?? How ? :)

To improve it further Few enhancements can be done to page scanning and overall quality of the scans.
I've tried every single (popular ones) document scanning app on play store. I don't know how vflat does it but when I scan a document on it, after the post processing, it eliminates all the marks of text that are on the other side of the page.
The output looks way too clean. So it's may be related to "whitepaper" feature ? It can be improved further upon.
After using "enhance" feature with "whitepaper" the difference becomes more apparent. Even more so with handwritten notes.

Vflat
20231230_141857099

Oss
1703984179191

Option to remove white border / margin

Currently when exporting a PDF there is a large white border around the original scaned document. In my opinion this is usually not necessary since most documents that I am scanning already have a margin around the text.

ResizedImage_Screenshot_20240109-080441.png_2024-01-09_08-06-51_1722.jpg

Weird icon scaling when dynamic color enabled.

Due to the non 1:1 ratio of the monochrome vector, Samsung phones (couldn't recreate it on the emulator) squish the icon weirdly. This can be fixed by adjusting the canvas on the vector to be 108x108 (Google's recommended size) and scaling the icon to fit it. See the attached image for comparison.
ResizedImage_2024-01-01_16-03-22_2464

App crashed after clicking photo

After i clicked a photo and pressed on the tick button ,the app crashed

Realme 8
Android 13
Latest version of ODS

I have got the logs ,idk if i should share it here

[Feature Request] OCR whole document

At the moment I need to OCR process each page individually and need to wait shortly for each page.

Sugguestion:
I think it would be more convenient to apply the filter or OCR to the entire document at once instead of only applying it to a single page.

Wish:
At the best this would be done in the background, and I could continue scanning the next document.

is Multiselect images from gallery planned?

It would be awsome to have the app process multiple images from the gallery atleast.
I cant seem to multi select more than one images in one go.
This will help in keeping related document pages in a single pdf.

Regards.

Black and white threshold

Can you please add a slider to control threshold of the black and white filter. Some scans I take are from old books and so the paper there is more brown which is close to text color, so what I get is black text on black background.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.