Problem statement: I want to scan an image at maximum scanner resolution (6400 dpi on a Epson V850). This is partly possible from the Epson scanner "professional mode" in the software, provided that the scan area is limited to 21000 x 30000 pixels.
I'm ok with this limitation, I could simply scan small squares of the full area (at max resolution), then "stitch" them together afterwards.
I want to automate this, so I'm attempting to use pyinsane / SANE.
The issue is: the maximum resolution I can set is 1200, as you can see from the properties reported by pyinsane
- dps_optical_xres=6400 ([])
- dps_optical_yres=6400 ([])
- resolution=300 ([50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375, 400, 425, 450, 475, 500, 525, 550, 575, 600, 625, 650, 675, 700, 725, 750, 775, 800, 825, 850, 875, 900, 925, 950, 975, 1000, 1025, 1050, 1075, 1100, 1125, 1150, 1175, 1200])
- xres=300 ([50, 1200, 1])
- yres=300 ([50, 1200, 1])
- optical_xres=6400 ([])
- optical_yres=6400 ([])
So the question is: how do I override this setting so I am able to scan small areas at 6400dpi?
Again, using the EPSON Scan software I can scan at 6400dpi, provided the scanned area is small.
I know the limit exists for memory reasons, but it doesn't feel right that I can't adjust scan area and resolution, just like the Epson software allows to do.
The problems with using the Epson software is A) I can't automate the process, and B) I can't select an arbitrary scan area in terms of top-left to bottom-right coordinates.
I'm surprised how there is no definite answer on this yet. Let's try to have one once and for all, for posterity!
First of all, beware Pyinsane2 is not maintained anymore. Its replacement is Libinsane. (I'm the author of both).
The maximum of
1200dpi
comes of the constraint onxres
andyres
:xres=300 ([50, 1200, 1])
andyres=300 ([50, 1200, 1])
(resolution
is just an alias to those 2 options created by Pyinsane2).Based on what you say, my guess is that you can get this constraint to go to higher values by setting first the scan area to a smaller one (see
tl-x
,tl-y
,br-x
,br-y
). However after that, I don't think Pyinsane2 will reload the constraint onresolution
correctly and so the max will remain 1200dpi (whereas Libinsane should reload it correctly).By the way, just to be pedantic, if you have options like
dps_optical_xres
oroptical_xres
, you are not using Pyinsane2 on top of Sane (Linux), but Pyinsane2 on top of WIA2 (Windows).