gpt4 book ai didi

delphi - WIA的ShowAcquireImage只保存为BMP?

转载 作者:行者123 更新时间:2023-12-02 00:46:23 29 4
gpt4 key购买 nike

我正在使用 Delphi XE 中的 WIA 2.0 库来自动扫描。我正在使用“ShowAcquireImage”函数来提供要保存到光盘的图像。我想将图像保存为压缩格式,例如 png 或 jpg,但该库似乎只保存为位图。

有其他人看到过这个问题吗?有解决方法吗? (除了作为大 bmp 文件保存到光盘并重新加载到 TJpegImage/TPngImage 对象之外)。

感谢您的任何建议菲尔W。

这是我当前使用的代码:



<前>//...
使用 ComObj、WIA_TLB、
//...
过程 TMainForm.ScanWiaDocument(DocumentRef: String);
常量
wiaFormatJPEG = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
wiaFormatPNG = '{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}';
变量
CommonDlg:ICommonDialog;
AImage: IImageFile;
图像路径:字符串;
开始
CommonDlg := CreateOleObject('WIA.CommonDialog') as ICommonDialog;
//转为JPG
试试
AImage := CommonDlg.ShowAcquireImage(ScannerDeviceType,
ColorIntent,//或 UnspecifiedIntent, GrayscaleIntent, TextIntent
最小化尺寸,//或最大化质量
wiaFormatJPEG,//图像格式 **<----仅保存为BMP格式!**!
False,//始终选择设备
False,//使用CommonUI
真的);//取消错误
//保存图像
ImagePath := 'C:\temp\scanimage\'+DocumentRef+'.'+ AImage.FileExtension;
AImage.SaveFile(ImagePath);
除了
在 E:Exception 上执行 LogException(E, 'ScanWiaDocument', True);
结尾;
最后//释放接口(interface)
CommonDlg := nil;
AImage := nil;
结尾;
结尾;

最佳答案

您在问ShowAcquireImage()如果可能的话,以 JPG 格式捕获,但不必遵守这一点。当ShowAcquireImage()退出,返回ImageFile对象有一个 FormatID属性指定实际使用的格式,例如扫描仪不支持 JPG。如果该文件还不是 JPG 格式,则必须随后对其进行转换,例如使用 Wia.ImageProcess目的。 MSDN显示an example of doing that .

关于delphi - WIA的ShowAcquireImage只保存为BMP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557430/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com