首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIA扫描,更改多个属性

WIA扫描,更改多个属性
EN

Stack Overflow用户
提问于 2020-03-30 15:54:17
回答 1查看 164关注 0票数 0

我目前正在开发一个可以扫描图像的应用程序。它确实会成功扫描这些图像,但当尝试更改设备的扫描属性时,它只使用上次更改的属性。

我当前更改属性的代码如下所示:

代码语言:javascript
复制
public static string Scan()
{
    WIA.Device scanner = ScannerManager.Scanner.Connect();
    IItem scannerItem = scanner.Items[1];
    AdjustWiaSettings(scannerItem);
    ImageFile imageFile = (ImageFile)scannerItem.Transfer(FormatID.wiaFormatTIFF);
    return SaveScannedFile(imageFile);
}

private static void AdjustWiaSettings(IItem scannerItem)
{
    const string WIA_SCAN_COMPRESSION = "4107"; // valid values: 0,5,8
    const string WIA_SCAN_COLORING = "6146"; //4 is Black-white, 2 is gray, 1 is color
    SetWiaProperty(scannerItem.Properties, WIA_SCAN_COMPRESSION, 5);
    SetWiaProperty(scannerItem.Properties, WIA_SCAN_COLORING, 4);
}

private static void SetWiaProperty(IProperties properties, object propName, object propValue)
{
    Property prop = properties.get_Item(ref propName);
    prop.set_Value(ref propValue);
}

它只改变了这两个函数的着色属性,但是如果这两个SetWiaProperty函数被切换,它只改变压缩属性。

我尝试了一种不同的方法,迭代了所有的属性,但产生了相同的结果。

EN

回答 1

Stack Overflow用户

发布于 2020-03-30 23:02:34

这里的问题只是WIA的部分问题。WIA属性的设置似乎需要按属性的顺序进行。如果操作正确,上例中的传出扫描文件大小约为1 MB (低于30+ MB)。

真正的问题是我用来将文件转换成.pdf的MagickImage。我只检查过.pdf文件,从来没有检查过扫描本身的结果。产生的文件大小让我相信只使用了一个属性,而实际上,在没有改变转换方法的任何属性的情况下,使用基本输入的MagickImage将文件大小从每页1MB增加到13MB。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60926186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档