Hi Michael & Klaus, A working separate Reflecta/PIE-USB demo backend in the attachment. At least it works for a Crystalscan 7200. I'm curious about your devices.
The backend consists of: * reflecta.c: the SANE interface implementation * reflecta_specific.c: several auxiliary functions * reflecta_scancmd.c: scanner command functions * reflecta_usb.c: usb level functions * reflecta_buffer.c: reader buffer (queue) and corresponding header files. I added a modified scanimage frontend, to allow 4-channel TIFF generation. The frontend is hardcoded for reflecta only, and consists of: * scanimage00.c: modified, see below * stiff.c: added a 4-channel TIFF header function * sanei_usb.c: the file from the regular distribution * sane.h: disabled the definitions of sane_xxx (they move to reflecta.h); enabled SANE_STATUS_WARMING_UP and SANE_FRAME_RGBI The modifications to scanimage are: * all functions sane_xxx changed to sane_reflecta_xxx * gain and offset are set using array syntax; scanimage already has the capability to do that, but it is not documented (so I added a couple of lines to the help text as well) * added reading RGBI data from the scanner (and save it as 4-channel TIFF) Build the modified reflecta-frontend+backend: * include directories: sane-backends-git20120722/backend sane-backends-git20120722/include /usr/include/libusb-1.0 * libraries: libsane & libusb-1.0 I did only shallow testing: ./scanimage -L ./scanimage -A ./scanimage --test ./scanimage --format=pnm >test00.pnm ./scanimage --format=tiff test01.tiff ./scanimage --mode=Color+Infrared --format=tiff >test02.tiff The list of current options: Scan Mode: --mode Lineart|Halftone|Gray|Color|Color+Infrared [Color] Selects the scan mode (e.g., lineart, monochrome, or color). --depth 1|8|12|16 [8] Number of bits per sample, typical values are 1 for "line-art" and 8 for multibit scans. --resolution 25..7200dpi (in steps of 1) [300] Sets the resolution of the scanned image. Geometry: -l 0..37.6767mm [0] Top-left x position of scan area. -t 0..24.2993mm [0] Top-left y position of scan area. -x 0..37.6767mm [37.6767] Width of scan-area. -y 0..24.2993mm [24.2993] Height of scan-area. Enhancement: --halftone-pattern 53lpi 45d ROUND|70lpi 45d ROUND|75lpi Hori. Line|4X4 BAYER| 4X4 SCROLL|5x5 26 Levels|4x4 SQUARE|5x5 TILE [inactive] Defines the halftoning (dithering) pattern for scanning halftoned images. --threshold 0..100% [inactive] Select minimum-brightness to get a white point --sharpen[=(yes|no)] [yes] Sharpen scan by taking more time to discharge the CCD. --skip-calibration[=(yes|no)] [no] Skip auto-calibration before scanning image. Option may be overridden by scanner. --fast-infrared[=(yes|no)] [no] Do not reposition scan head before scanning infrared line. Results in an infrared offset which may deteriorate IR dust and scratch removal. Advanced: --preview[=(yes|no)] [no] Request a preview-quality scan. --save-shading-data[=(yes|no)] [no] Save shading data in 'reflecta.shading' --save-ccdmask[=(yes|no)] [no] Save CCD mask 'reflecta.ccd' --exposure-time 100..5000us (in steps of 1) [2937, 2937, 2937, 2937] The time the 4 different color filters of the CCD are exposed (R,G,B,I) --gain 0..63 [19, 19, 19, 19] The gain of the signal processor for the 4 CCD color filters (R,G,B,I) --offset 0..255 [0, 0, 0, 0] The offset of the signal processor for the 4 CCD color filters (R,G,B,I) Yours, Jan -------------- next part -------------- A non-text attachment was scrubbed... Name: reflecta.zip Type: application/zip Size: 81117 bytes Desc: reflecta.zip URL: <http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20120906/fb811167/attachment-0001.zip>