pyinsane的扫描会话默认返回8位PIL图像的列表。这是真的,即使扫描是在16位模式下完成的(例如使用透明单元)。有没有什么方法可以从pyinsane中获得16位图像(我想PIL不支持这一点)或原始原始数据?在
以下是我当前使用的示例代码,并获得8位色深的图像:
import pyinsane.abstract as pyinsane
device = pyinsane.get_devices()[0]
device.options['resolution'].value = 1200
device.options['mode'].value = 'Color'
device.options['source'].value = 'Transparency Unit'
scan_session = device.scan(multiple=False)
try:
while True:
scan_session.scan.read()
except EOFError:
pass
image = scan_session.images[0]
你说得对,这是对枕头的限制。您可以在这里看到从raw到PIL图像的转换:https://github.com/openpaperwork/pyinsane/blob/master/pyinsane2/sane/abstract.py#L161
如果您真的需要这些额外的数据,我想唯一的选择是直接使用Sane API并进行自己的转换:
不幸的是,这样做会使你失去Windows的可移植性(WIA支持),而且Pyinsane的这一部分根本没有文档记录。然而,精神错乱。理智。拉瓦皮为Sane C API提供了一些小的转换,使其更适合Pythony。所以我想您可以参考Sane文档来获取信息:http://www.sane-project.org/html/doc009.html。在
相关问题 更多 >
编程相关推荐