0

我正在用 C++ 开发一个扫描仪应用程序。目前我能够扫描文档并以文件传输模式获取图像。但是即使文档的内容不同,所有扫描的文档也具有相同的大小。

FileFormat:TWFF_TIFF
Pixel flavout: TWPF_CHOCOLATE
Xresoultion:75
Yresoultion:75
ICAP_UNITS: TWUN_INCHES
ICAP_PIXELTYPE: TWPT_GRAY
ICAP_BRIGHTNESS:0
ICAP_CONTRAST:0
ICAP_BITDEPTH: 8

每次扫描的图像大小为327kb。为什么会这样?

另外,如何设置JPEG_Compression。文件传输模式是否支持JPEG_compression?

4

1 回答 1

1

可能您的扫描仪/驱动程序正在写入未压缩的 TIFF 文件,因此文件大小仅取决于图像的尺寸。如果每个图像的宽度和高度相同,则生成的文件将具有相同的大小。

TWAIN 中的所有文件传输内容都是由驱动程序(而不是 TWAIN 本身)实现的,并且所有功能都是可选的。因此,您需要在传输 TIFF 文件时检查您的扫描仪/驱动程序是否支持 JPEG 压缩。可能会,也可能不会。

在将 ICAP_IMAGEFILEFORMAT 设置为 TWFF_TIFF之后,您可以尝试将 ICAP_COMPRESSION设置为 TWCP_JPEG。如果两者都成功,您可能会在 TIFF 中获得 JPEG 压缩,尽管它可能是“旧样式”JPEG 或“新样式”JPEG。如果您不知道这意味着什么,您可能应该找出答案。

几年前,我为这种实验编写了一个工具,仍然由 Atalasoft 维护且免费:Twirl TWAIN Probe

注意:许多扫描仪不支持文件传输模式(它是可选的),而那些可能不支持 TIFF 文件格式的扫描仪(唯一需要的文件格式是 BMP!)如果您需要支持多种扫描仪,您必须使用 TWAIN 的本地传输模式或内存传输模式,并将图像写入自己的文件,例如使用 LibTiff。

于 2013-04-08T15:11:26.063 回答