<div dir="auto"><div>Hi,<div dir="auto"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sat, Nov 1, 2025, 03:04  <<a href="mailto:jp@byjp.me">jp@byjp.me</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-break:after-white-space">Hello,<div><br></div><div>I'm interested in driving SANE to scan twice in succession (one with the lamp on, one with the lamp off), so I can scan against a lightbox (with <i>its</i> lamp off, and on, respectively) to manufacture an alpha layer for my scanned image.</div><div><br></div><div>(I’m scanning postcards; some have unusually shaped edges, and with examples of every colour touching the edge of the card — my attempts at automating masking with alpha mattes work only some of the time)</div><div><br></div><div>I have a Pixma scanner (CanoScan LiDE 400), for which SANE doesn't declare any lamp-related options (with scanimage -A). I’m a software & firmware engineer, so I’m comfortable getting into the detail, but I wanted to learn from the community first:</div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The Lide 400 uses the pixma backend which uses a high level protocol to request scans. If you intend to manipulate the scan lamp then you would need to access the hardware directly in which case you would probably not be using SANE. There is a huge variety of ways in which scanners are controlled. The multifunction devices by Canon, Xerox, HP, etc all use very higher level protocols and hardware is handled internally by the device's firmware so there isn't usually any provision for you to manipulate the device at a low level. To go that route you need to go for a device that is controlled more finely such as the Genesys scanner-on-a-chip models. See the Genesys backend to see what models are currently supported. Other backends also support devices that are controlled at the lower level where lamp control may be possible.</div><div dir="auto"><br></div><div dir="auto">Cheers,</div><div dir="auto">Ralph</div><div dir="auto"><br></div></div>