scanimage
scan an image
see also :
gamma4scanimage
Synopsis
scanimage
[-d|--device-name
dev] [--format format]
[-i|--icc-profile
profile]
[-L|--list-devices]
[-f|--formatted-device-list
format] [--batch [=format]]
[--batch-start start]
[--batch-count count]
[--batch-increment
increment] [--batch-double]
[--accept-md5-only]
[-p|--progress]
[-n|--dont-scan]
[-T|--test]
[-A|--all-options]
[-h|--help]
[-v|--verbose]
[-B|--buffer-size
[=size]]
[-V|--version]
[device-specific-options]
add an example, a script, a trick and tips
examples
To get a list of devices:
scanimage -L
To scan with default settings to the file image.pnm:
scanimage >image.pnm
To scan 100x100 mm to the file image.tiff (-x and -y may not be
available with all devices):
scanimage -x 100 -y 100 --format=tiff >image.tiff
To print all available options:
scanimage -h
source
TARGET_FILE_NAME=$1
scanimage > /tmp/image.ppm
pnmtopng /tmp/image.ppm > $1
source
rm /tmp/tmp.tif
scanimage --format=tif
--resolution 300 > /tmp/tmp.tif
convert -resize 50% /tmp/tmp.tif ./$1.pdf
source
SCANNER=`scanimage -L | awk
-F "\\\`" '{print
$2}' | awk -F "'" '{print $1}'`
echo "Scanner:
${SCANNER}"
echo "Scanner:
${SCANNER}"
scanimage --device "${SCANNER}"
--mode Gray --source "ADF Front"
--format=tiff --batch=`date
+%Y-%m-%d-%H-%M-%S-`%d.tif --resolution
300 -p -x 210 -y 297 --quality-cal=yes
--quality-scan=yes
source
/usr/local/bin/scanimage -L
else
/usr/local/bin/scanimage --batch="$1"
--batch-count=2 --source "ADF Duplex" --mode Lineart --format=tiff --brightness 10 --resolution 150 --bgcolor Black
--overscan on --page-height 375.6 -y 375.6
description
scanimage
is a command-line interface to control image acquisition
devices such as flatbed scanners or cameras. The device is
controlled via command-line options. After command-line
processing, scanimage normally proceeds to acquire an
image. The image data is written to standard output in one
of the PNM (portable aNyMaP) formats (PBM for
black-and-white images, PGM for grayscale images, and PPM
for color images) or in TIFF (black-and-white, grayscale or
color). scanimage accesses image acquisition devices
through the SANE (Scanner Access Now Easy) interface
and can thus support any device for which there exists a
SANE backend (try apropos sane-
to get a list of available backends).
options
Parameters are
separated by a blank from single-character options (e.g.
-d epson) and by a "=" from multi-character
options (e.g. --device-name=epson).
The
-d or --device-name
options must be followed by a SANE device-name like
’epson:/dev/sg0’ or
’hp:/dev/usbscanner0’. A (partial) list
of available devices can be obtained with the
--list-devices option (see below).
If no device-name is specified explicitly, scanimage
reads a device-name from the environment variable
SANE_DEFAULT_DEVICE. If this variable is not set,
scanimage will attempt to open the first available
device.
The
--format format option selects how
image data is written to standard output. format can
be pnm or tiff. If --format
is not used, PNM is written.
The
-i or --icc-profile
option is used to include an ICC profile into a TIFF
file.
The
-L or --list-devices
option requests a (partial) list of devices that are
available. The list is not complete since some devices may
be available, but are not listed in any of the configuration
files (which are typically stored in directory
/etc/sane.d). This is particularly the case when
accessing scanners through the network. If a device is not
listed in a configuration file, the only way to access it is
by its full device name. You may need to consult your system
administrator to find out the names of such devices.
The
-f or
--formatted-device-list
option works similar to
--list-devices, but requires a
format string. scanimage replaces the placeholders
%d %v %m %t %i %n with the device name, vendor name,
model name, scanner type, an index number and newline
respectively. The command
scanimage
-f “ scanner number %i device %d is a %t,
model %m, produced by %v ”
will produce
something like:
scanner number
0 device sharp:/dev/sg1 is a flatbed scanner, model JX250
SCSI, produced by SHARP
The
--batch* options provide the features for
scanning documents using document feeders.
--batch [format] is used to
specify the format of the filename that each page will be
written to. Each page is written out to a single file. If
format is not specified, the default of out%d.pnm (or
out%d.tif for --format tiff) will be used.
format is given as a printf style string with one
integer parameter. --batch-start
start selects the page number to start naming files
with. If this option is not given, the counter will start at
1. --batch-count count
specifies the number of pages to attempt to scan. If not
given, scanimage will continue scanning until the scanner
returns a state other than OK. Not all scanners with
document feeders signal when the ADF is empty, use this
command to work around them. With
--batch-increment increment
you can change the amount that the number in the filename is
incremented by. Generally this is used when you are scanning
double-sided documents on a single-sided document feeder. A
specific command is provided to aid this:
--batch-double will automatically
set the increment to 2.
--batch-prompt will ask for
pressing RETURN before scanning a page. This can be used for
scanning multiple pages without an automatic document
feeder.
The
--accept-md5-only option only
accepts user authorization requests that support MD5
security. The SANE network daemon (saned) is
capable of doing such requests. See saned(8).
The
-p or --progress option
requests that scanimage prints a progress counter. It
shows how much image data of the current image has already
been received by scanimage (in percent).
The
-n or --dont-scan
option requests that scanimage only sets the options
provided by the user but doesn’t actually perform a
scan. This option can be used to e.g. turn off the
scanner’s lamp (if supported by the backend).
The
-T or --test option requests
that scanimage performs a few simple sanity tests to
make sure the backend works as defined by the SANE
API (in particular the sane_read function is
exercised by this test).
The
-A or --all-options option
requests that scanimage lists all available options
exposed the backend, including button options. The
information is printed on standard output and no scan will
be done.
The
-h or --help options request
help information. The information is printed on standard
output and in this case, no attempt will be made to acquire
an image.
The
-v or --verbose options
increase the verbosity of the operation of scanimage.
The option may be specified repeatedly, each time increasing
the verbosity level.
The
-B or --buffer-size changes
the input buffer size from 32KB to the number kB specified
or 1M.
The
-V or --version option
requests that scanimage prints the program and
package name, the version number of the SANE
distribution that it came with and the version of the
backend that it loads. Usually that’s the dll backend.
If more information about the version numbers of the
backends are necessary, the DEBUG variable for the
dll backend can be used. Example: SANE_DEBUG_DLL=3 scanimage
-L.
As you might
imagine, much of the power of scanimage comes from
the fact that it can control any SANE backend. Thus,
the exact set of command-line options depends on the
capabilities of the selected device. To see the options for
a device named dev, invoke scanimage via a
command-line of the form:
scanimage
--help --device-name
dev
The
documentation for the device-specific options printed by
--help is best explained with a few
examples:
-l
0..218mm [0]
Top-left x position of scan area.
The description
above shows that option -l expects an option
value in the range from 0 to 218 mm. The value in square
brackets indicates that the current option value is 0 mm.
Most backends provide similar geometry options for top-left
y position (-t), width (-x) and height of
scan-area (-y).
--brightness
-100..100% [0]
Controls the brightness of the acquired image.
The description
above shows that option --brightness
expects an option value in the range from -100 to 100
percent. The value in square brackets indicates that the
current option value is 0 percent.
--default-enhancements
Set default values for enhancement controls.
The description
above shows that option
--default-enhancements has no
option value. It should be thought of as having an immediate
effect at the point of the command-line at which it appears.
For example, since this option resets the
--brightness option, the option-pair
--brightness 50
--default-enhancements would
effectively be a no-op.
--mode
Lineart|Gray|Color [Gray]
Selects the scan mode (e.g., lineart or color).
The description
above shows that option --mode accepts an
argument that must be one of the strings Lineart,
Gray, or Color. The value in the square
bracket indicates that the option is currently set to
Gray. For convenience, it is legal to abbreviate the
string values as long as they remain unique. Also, the case
of the spelling doesn’t matter. For example, option
setting --mode col is identical to
--mode Color.
--custom-gamma[=(yes|no)]
[inactive]
Determines whether a builtin or a custom gamma-table
should be used.
The description
above shows that option
--custom-gamma expects either no
option value, a "yes" string, or a "no"
string. Specifying the option with no value is equivalent to
specifying "yes". The value in square-brackets
indicates that the option is not currently active. That is,
attempting to set the option would result in an error
message. The set of available options typically depends on
the settings of other options. For example, the
--custom-gamma table might be
active only when a grayscale or color scan-mode has been
requested.
Note that the
--help option is processed only after all
other options have been processed. This makes it possible to
see the option settings for a particular mode by specifying
the appropriate mode-options along with the
--help option. For example, the
command-line:
scanimage
--help --mode color
would print the
option settings that are in effect when the color-mode is
selected.
--gamma-table
0..255,...
Gamma-correction table. In color mode this option
equally affects the red, green, and blue channels
simultaneously (i.e., it is an intensity gamma table).
The description
above shows that option
--gamma-table expects zero or more
values in the range 0 to 255. For example, a legal value for
this option would be "3,4,5,6,7,8,9,10,11,12".
Since it’s cumbersome to specify long vectors in this
form, the same can be expressed by the abbreviated form
"[0]3-[9]12". What this means is that the first
vector element is set to 3, the 9-th element is set to 12
and the values in between are interpolated linearly. Of
course, it is possible to specify multiple such linear
segments. For example, "[0]3-[2]3-[6]7,[7]10-[9]6"
is equivalent to "3,3,3,4,5,6,7,10,8,6". The
program gamma4scanimage can be used to generate such
gamma tables (see gamma4scanimage(1) for
details).
--filename
<string> [/tmp/input.ppm]
The filename of the image to be loaded.
The description
above is an example of an option that takes an arbitrary
string value (which happens to be a filename). Again, the
value in brackets show that the option is current set to the
filename /tmp/input.ppm.
environment
SANE_DEFAULT_DEVICE
The default device-name.
files
/etc/sane.d
This directory holds various configuration files. For details,
please refer to the manual pages listed below.
~/.sane/pass
This file contains lines of the form
user:password:resource
scanimage uses this information to answer user authorization
requests automatically. The file must have 0600 permissions or
stricter. You should use this file in conjunction with the
--accept-md5-only option to avoid server-side attacks. The
resource may contain any character but is limited to 127
characters.
bugs
For vector
options, the help output currently has no indication as to
how many elements a vector-value should have.
see also
sane,
gamma4scanimage , xscanimage,
xcam, xsane, scanadf,
sane-dll, sane-net,
sane-"backendname"
author
David
Mosberger, Andreas Beck, Gordon Matzigkeit, Caskey Dickson,
and many others. For questions and comments contact the
sane-devel mailinglist (see
http://www.sane-project.org/mailing-lists.html).