在线服务>>产品特性&技术文档
 
TWAIN传输模式的比较
 


TWAIN协议定义了三种传输方式,包括本地、文件和缓存模式。下面简单介绍下3者的优缺点。

 本地模式
所有的输入设备都支持这种本地数据传输模式,同时它也是TWAIN默认的数据传输模式,并且它还是最容易使用的数据传输模式。但是,它有一定的局限性,它传输的数据必须是DIB图像数据,并且在传输时,会受到系统内存大小限制。传输数据的格式:DIB(Device-IndependentBitmap)。使用该模式,在数据传输时Source分配一块单独的内存区域,并把图形数据写入这个内存区域内。然后它通过一个指向该内存地址的指针告诉Application,数据存放在什么地方。你的应用程序通过访问该内存区域去获得具体的图像数据。注意,Application在获得数据后要负责去释放这部分的内存。如果你的图像数据大于系统当前可用内存,会导致传输失败。
 
文件模式
该模式是让Application创建一个文件,这个文件用于储存传输的数据,Source将对该文件进行读写操作。Source将把要传输的数据写到该文件中,你的应用程序通过访问该文件,就可以获得传输的数据。
在使用本地模式传输一个大的图像文件时,如果内存不够大,可以考虑使用文件传输模式来传输。文件传输模式与缓存传输模式相比,在使用方法上要简单些,但是该模式在传输速度上比缓存模式的传输速度要慢一些,并且在数据传输完毕后,你的应用程序还必须去管理这个数据文件。
 
缓存模式
缓存模式在整个传输过程中,将使用一个或多个内存缓存区,内存缓存区的分配和释放工作由Application来控制。在传输过程中,传输数据被当作一个未知格式的位图。Application必须使用TW_IMAGEINFOTW_IMAGEMEMXFER操作,去得到各个缓存区的信息并把它们正确组织为一个完整的位图。
如果使用本地模式或文件模式去传输数据,整个传输过程在只需要一个Triplets操作就可以完成。如果使用缓存模式传输数据,你的应用程序可能需要使用多个Triplets操作,不停地去获得缓存区的数据信息。但是,该传输模式具有很好的灵活性,可以很好的去控制获得的数据,只不过在编程应用上要麻烦一些。