There are two sets of options available when running scanimage.
The options that are provided by scanimage itself are listed below. In addition, each backend offers its
own set of options and these can also be specified. Note that the options available from the backend may
vary depending on the scanning device that is selected.
Often options that are similar in function may be implemented differently across backends. An example of
this difference is --modeGray and --modeGrayscale. This may be due to differing backend author
preferences. At other times, options are defined by the scanning device itself and therefore out of the
control of the backend code.
Parameters are separated by a blank from single-character options (e.g. -depson) and by a "=" from
multi-character options (e.g. --device-name=epson).
-ddev, --device-name=dev
specifies the device to access and 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.
--format=output-format
selects how image data is written to standard output or the file specified by the --output-file
option. output-format can be pnm, tiff, png, or jpeg. If --format is not specified, PNM is
written by default.
-iprofile, --icc-profile=profile
is used to include an ICC profile into a TIFF file.
-L, --list-devices
requests a (partial) list of devices that are available. The list may not be 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.
-fformat, --formatted-device-list=device-format
works similarly 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“scannernumber%idevice%disa%t,model%m,producedby%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 features for scanning documents using document feeders.
-b [format], --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 --formattiff, out%d.png for --formatpng or out%d.jpg for --formatjpeg)
will be used. This option is incompatible with the --output-path option. 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 option to work around them.
--batch-increment=increment
sets 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.
--batch-double is a specific command provided to aid this.
--batch-double
will automatically set the increment to 2. Equivalent to --batch-increment=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.
--accept-md5-only
only accepts user authorization requests that support MD5 security. The SANE network daemon
saned(8) is capable of doing such requests.
-p, --progress
requests that scanimage prints a progress counter. It shows how much image data of the current
image has already been received (in percent).
-opath, --output-file=path
requests that scanimage saves the scanning output to the given path. This option is incompatible
with the --batch option. The program will try to guess --format from the file name. If that is not
possible, it will print an error message and exit.
-n, --dont-scan
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).
-T, --test
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.
-A, --all-options
requests that scanimage lists all available options exposed by the backend, including button
options. The information is printed on standard output and no scan will be performed.
-h, --help
requests help information. The information is printed on standard output and no scan will be
performed.
-v, --verbose
increases the verbosity of the output of scanimage. The option may be specified repeatedly, each
time increasing the verbosity level.
-B [size], --buffer-size=size
changes input buffer size from the default of 1MB to size KB.
-V, --version
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. If more information
about the version numbers of the backends are necessary, the DEBUG variable for the dll layer can
be used. Example: SANE_DEBUG_DLL=3scanimage-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:
-l0..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 --brightness50--default-enhancements would effectively be a no-op.
--modeLineart|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 --modecol is
identical to --modeColor.
--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--modecolor
would print the option settings that are in effect when the color-mode is selected.
--gamma-table0..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.