[sane-devel] Canon FS4000 backend code

Andrew McDonnell bugs at andrewmcdonnell.net
Sat Sep 29 08:18:27 UTC 2012


Hi all,

I have developed a partially completed backend for a Canon FS4000 slide
scanner.  It can scan a chosen slide or negative position into a native
resolution negative image.

I have uploaded a patch generated from my git working copy (using git diff
origin) against the development tree, to:

http://andrewmcdonnell.net/snippets/fs4000-backend-alpha-update1.patch

I am developing using Squeeze amd64, and the most recent git rebase doesnt
build cleanly for me, so I have to regenerate the libtool scripts from the
working tree (the patch excludes the changes this causes):

I build it using:

  make clean
  rm -rf aclocal.m4 autom4te.cache
  libtoolize -c -i -f

  ./configure --prefix=$HOME/opt/sane-1.0.24-head-git \
     --disable-translations --enable-warnings --disable-avahi --disable-ipv6 \
     --without-snmp --enable-pnm-backend --disable-locking --enable-pthread \
     --with-gphoto2 --enable-static --enable-maintainer-mode BACKENDS=fs4000
  make install

Locate device:

  scanimage  -d fs4000:libusb:009:005 -A

Outputs:

All options specific to device `fs4000:libusb:009:005':
    --product <string> [IX-40015G] [hardware]
        Product string detected from scanner.
    --iframe-slide auto|1..4 (in steps of 1) [1]
        Frame to scan, 1..4 for slides
    --iframe-neg auto|1..6 (in steps of 1) [1]
        Frame to scan, 1..6 for negatives

Scanning:
# give the tray a slight push so it retracts into the device
# below, 4 is a number between 1 and 6 for the slide position.

  scanimage --iframe-neg 4 --format=pnm >  test.pnm

This produces a 4040x5904 pixel negative image (for negatives, I have no slide
to test currently) viewable in Gimp.


The backend still needs quite a bit of work to be properly usable, some of the
areas needing refinement includes:
 * fleshing out of scanner-specific options for fine control of the scanner
 * makeing code more conformant with sane programming standards
 * support for actual SCSI (only USB currently tested)
 * support for more than one connected Fs4000 (to support this, the code
ported from Windows will need to be refactored, the original author only ever
assumed one scanner I think)
 * calibration support (the low code supports the ability to save calibration
 data for reuse but I havent yet worked out how to incorporate this into sane)
 * general code clean up and more detailed comments
 * scan zooming
 * scan at a reduced resolution
 * automated negative conversion (this would need to be done in software)

I have been slowly starting to work through the above

hoping I can make a useful contribution,
--Andrew

-- 


https://launchpad.net/~andymc73
http://blog.oldcomputerjunk.net
Twitter: @andymc73
GPG: http://www.andrewmcdonnell.net/gpg.html



More information about the sane-devel mailing list