Skip to content

Digitize books efficiently with dual Canon camera control, ICC profile support, and OCR – built using Avalonia and EDSDK

License

Notifications You must be signed in to change notification settings

Nick4978/CanonBookScanner

Repository files navigation

CanonBookScanner

CanonBookScanner is a cross-platform Windows desktop application designed for high-efficiency book digitization using Canon DSLR or mirrorless cameras via the Canon EDSDK. Built using .NET 8 and Avalonia UI, it enables professional capture workflows, ICC color management, and metadata tagging.


Features

  • 📸 Dual Canon Camera Support: Capture left/right book pages simultaneously using Canon's EDSDK.
  • 🖥️ Simple & Responsive UI: Avalonia-based interface optimized for digitization workflows.
  • 🎯 Camera Controls: Live view, capture, focus, exposure, and other DSLR settings.
  • 🗂️ Project Management: Manage scanning sessions and metadata (title, author, etc.).
  • 🧾 Custom File Naming & Saving: Output to TIFF, JPEG, PDF with user-defined naming and save location.
  • 🔢 Session Counters & Logs: Automatically tracks scans and logs per book/session.
  • 🎛️ Basic Image Adjustments: Auto-crop, rotate, deskew, white balance, and exposure adjustments.
  • 🎚️ Focus & Alignment Tools: Grid overlays, zoom previews for precise framing.
  • 🔤 OCR (Tesseract): Optional searchable PDF output.
  • 🌈 ICC Profile Management:
    • Load and apply scanner/camera ICC profiles.
    • Support for attach or convert workflows.
    • Embed ICC metadata into output images.

Technologies Used

  • .NET 8 (Windows Desktop)
  • Avalonia UI
  • Canon EDSDK (via P/Invoke)
  • Tesseract OCR
  • Colourful (for color space conversions)
  • ICSharpCode.SharpZipLib (planned for ZIP export)
  • ReactiveUI (planned for MVVM bindings)

Solution Structure

CanonBookScanner/ ├── CanonBookScanner.Core # Core models and shared logic ├── CanonBookScanner.SDK # Canon EDSDK wrapper and native interop ├── CanonBookScanner.UI # Avalonia UI and ViewModels ├── CanonBookScanner.Tests # Unit tests (xUnit) └── README.md


Prerequisites

  • Windows 10/11
  • Visual Studio 2022+
  • .NET 8 SDK
  • Canon EDSDK installed (place native DLLs in expected path or reference in project)
  • Avalonia templates installed (dotnet new install Avalonia.Templates)

Getting Started

  1. Clone this repository
git clone https://github.com/yourusername/CanonBookScanner.git
cd CanonBookScanner

Build the solution

Open in Visual Studio 2022 and build all projects (ensure x64 platform selected if using Canon EDSDK).

Run the app

Set CanonBookScanner.UI as the startup project and press F5.

About

Digitize books efficiently with dual Canon camera control, ICC profile support, and OCR – built using Avalonia and EDSDK

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages