GithubHelp home page GithubHelp logo

dvkch / backlit Goto Github PK

View Code? Open in Web Editor NEW
32.0 3.0 3.0 513.94 MB

Wirelessly scan a document on your iPhone, iPad or Mac

Ruby 3.25% Objective-C 0.64% Swift 67.33% C 15.34% HTML 13.44%
sane sane-frontend swift

backlit's People

Contributors

dvkch 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

Watchers

 avatar  avatar  avatar

backlit's Issues

Add support for handheld scanners

It is a possibility that at the beginning of a scan we don't know its final height, cf Sane Get Parameters, parameter lines.

This should not be hard to support in Sane.swift, even image generation should work easily, but having a proper UI will require testing using a real device.

Add scanning presets

We could define per device presets, shared across iCloud devices.

The main issue with this task is that it would require to find the simplest way to represent selected device options, keeping in mind that some options may not be available up until another one is set to the proper value, or that adjusting an option's value could reset the value of another one.

A "best effort" way to do that would be to :

  • save a simple hash of Option # -> Option Value
  • restore by setting each option whose value isn't the saved one to the saved value. if by the end of the loop the snapshots don't match, we redo a pass or two. a maximum number of passes could be set to prevent infinitely looping if we cannot recreate the proper settings.

A more precise version of it could be :

  • save the list of setting changes that happened, as an array of (Option #, Option Value). optionally this list might be trimable under certain circumstances to prevent it from being extremely long
  • restore by reapplying one by one the settings

Notes :

  • it could also have the added benefit that we could close a device while not specifically using it for scanning or previewing, using an unnamed preset. we need to figure out the cost of always saving and restoring options in between scans though
  • some options could be ignored, for instance the crop settings

Altstore release?

Hi @dvkch, want to say thanks on making this app! Just tested it out and works great on my device.

I was wondering if you would potentiall consider releasing this app on the altstore? (https://noah978.gitbook.io/altstore-docs/sources)

Right now, I have to manually compile the app and then reinstall it every 7 days on my device. Altstore could potentially leviate some of that burden.

Thanks!

Add support for Sane Airscan

https://github.com/alexpevzner/sane-airscan

The work has been started to compile the library on macOS, but it requires Avahi and DBus to work. We need to do a port of the library that would use NetServiceBrowser instead of Avahi, and replace the DBus runloop by NSRunLoop on macOS/iOS.

This is a huge undertaking and I will not have the time to work on it just yet, but will keep it in mind for future free times :)

Once the work is done and upstreamed, it should only be a matter of integrating it into Sane-build.rb and Sane.xcframework.

How to install this?

Hi dvkch, is there a way to install this app in my iOS devices without a macOS environment?

Add support for very large scans

In some situations, especially on iOS, the device available memory can be maxed out be a large scan. Especially if we scan multiple files, in the current architecture all scans are kept in-memory up until they are saved by the Application.

It should be doable to scan to a file direct, appending data using an NSFileHandle, and generating previews using Data(contentsOf: URL, options: .mappedIfSafe) as the CGImage data provider.

It would be extremely harder though to support exotic image formats like RGB 1bit that require manipulating data that was already scanned.

This is currently not a priority

Allow scanning from other apps

There might be a way to do so from the file extension, adding a button that would show DeviceVC for a selected device, and close by returning a given image or NSFileProviderItem

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.