select scan resolution more conservatively
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Simple Scan |
Fix Released
|
Medium
|
Unassigned | ||
simple-scan (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
I work on the epkowa SANE backend that supports Epson scanners.
I tested simple-scan 0.9.7 on Ubuntu 10.04 beta 1. It appears that simple-scan chooses a non-optimal resolution setting when confronted with a scanner that does not directly support the resolutions that are in its menus.
For example, with the Epson GT-X820/Perfection V600 Photo scanner the epkowa backend reports the following supported resolutions (ignoring the more complex X and Y resolutions):
400, 800, 1600 and 3200 dpi
Note that none of these resolutions are found in simple-scan's menus.
When I tried scanning with the default resolution of 300 dpi, simple-scan actually selected 3200 dpi at which point the scan failed because the scanner cannot actually scan the full area at such a high resolution. Using another scanner, that supports a resolution of 300 dpi directly, resulted in a successful scan.
Ignoring the scan failure itself, which is an ancillary issue, I would suggest a more conservative resolution selection strategy. For example, in the above case, it might be a better idea to select the closest resolution of 400 dpi instead of going straight for the maximum resolution of 3200 dpi.
Other SANE frontends, including scanimage, handle this case as I would expect by selecting 400 dpi.
A cursory look at the simple-scan source left me non-the-wiser as to where this logic was going on. I guess set_int_option and set_double_option in src/scanner.c should be doing this job?
I've attached a log of the failed scan attempt at 300 dpi with the Epson Perfection V600
Changed in simple-scan (Ubuntu): | |
status: | New → Fix Committed |
importance: | Undecided → Medium |
Changed in simple-scan: | |
status: | Fix Committed → Fix Released |
Thanks Alesh, fixed broken logic in src/scanner. c:set_int_ option