我正在用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?
答案 0 :(得分: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。