WIA 扫描仪,无法获取/设置 4104 和 6146 属性(颜色、颜色深度)

Posted

技术标签:

【中文标题】WIA 扫描仪,无法获取/设置 4104 和 6146 属性(颜色、颜色深度)【英文标题】:WIA scanner, can't get/set 4104 and 6146 properties (color, color depth) 【发布时间】:2013-11-17 19:46:12 【问题描述】:

我正在尝试在 C# 项目中使用 WIA 配置柯达 i2600 扫描仪的颜色和深度。有几篇帖子参考了参数6146(可以取值1(颜色)、2(灰度)或4(白色和黑色))和4104(颜色深度=24)。

WIA Automation for scanner color intent is not working

Windows image acquisition - setting device properties in C#

Detect all available scanner resolutions using WIA

当我迭代数组扫描器属性​​时,这些属性不会出现。

我使用 foreach 循环来迭代属性,这是我得到的列表:

3112:用户名:******* 4098:项目名称:根 4099:项目全名:0000\根 4101:项目标志:76 2:唯一设备 ID:613DD1FC6 - 810E- 1100 - 13EC7- 0800213E2092F \ 0000 3:制造商:柯达 4:描述:柯达 i2600 扫描仪 5:类型:65537 6:端口:\AUsbscan0 7:名称:柯达 i2600 扫描仪 8:服务器:本地 9:远程设备 ID: 10:Ul 类 ID:40131AD10 - 3391 - 11D2- 9A33- 00C04FA36145 11:硬件配置:0 12: 8audRate: 13:STI 通用功能:49 14:WIA 版本:2.0 15:驱动版本:1.1.0.0 16:PnP ID 字符串:usb=vid 040a&pid 601d=0000000000000000=6bddlfc6- 810f- 11d0- bec7- 0800 2be2092f 17:STI 驱动程序版本:3 4125:项目类别:F193526F- 5988- 4A26- 9888- E16E4F97CE10 1026:固件版本:0 3086:文档处理能力:8229 3087:文档处理状态:5 3095:最大扫描时间:3600000 3090:水平光学分辨率:600 3091:垂直光学分辨率:600 3103:显示预览控件:0 3098:页面宽度:8500 3099:页面高度:14000 3096:页数:0 3076:横向进纸尺寸:8500 3077:垂直进纸尺寸:14000 3088:文档处理选择:1 3078:供纸器注册:1 3104:最小横向进纸尺寸:1000 3105:最小垂直进纸尺寸:1000 3100:预览:0

扫描仪驱动程序已更新。

【问题讨论】:

你能分享引用这些属性的链接吗? 我添加了一些引用这些属性的链接。谢谢 【参考方案1】:

我遇到了同样的问题(kodak i2400)。

如果你愿意,试试这个:

WIA.Item item = device.Items[1] as WIA.Item;

AdjustScannerSettings(item, 150, 0, 0, 1250, 1700, 0, 0, 1);


private static void AdjustScannerSettings(IItem scannnerItem, int scanResolutionDPI, int scanStartLeftPixel, int scanStartTopPixel,
        int scanWidthPixels, int scanHeightPixels, int brightnessPercents, int contrastPercents, int colorMode)

    const string WIA_SCAN_COLOR_MODE = "6146";
    const string WIA_HORIZONTAL_SCAN_RESOLUTION_DPI = "6147";
    const string WIA_VERTICAL_SCAN_RESOLUTION_DPI = "6148";
    const string WIA_HORIZONTAL_SCAN_START_PIXEL = "6149";
    const string WIA_VERTICAL_SCAN_START_PIXEL = "6150";
    const string WIA_HORIZONTAL_SCAN_SIZE_PIXELS = "6151";
    const string WIA_VERTICAL_SCAN_SIZE_PIXELS = "6152";
    const string WIA_SCAN_BRIGHTNESS_PERCENTS = "6154";
    const string WIA_SCAN_CONTRAST_PERCENTS = "6155";

    SetWIAProperty(scannnerItem.Properties, WIA_HORIZONTAL_SCAN_RESOLUTION_DPI, scanResolutionDPI);
    SetWIAProperty(scannnerItem.Properties, WIA_VERTICAL_SCAN_RESOLUTION_DPI, scanResolutionDPI);
    SetWIAProperty(scannnerItem.Properties, WIA_HORIZONTAL_SCAN_START_PIXEL, scanStartLeftPixel);
    SetWIAProperty(scannnerItem.Properties, WIA_VERTICAL_SCAN_START_PIXEL, scanStartTopPixel);
    SetWIAProperty(scannnerItem.Properties, WIA_HORIZONTAL_SCAN_SIZE_PIXELS, scanWidthPixels);
    SetWIAProperty(scannnerItem.Properties, WIA_VERTICAL_SCAN_SIZE_PIXELS, scanHeightPixels);
    SetWIAProperty(scannnerItem.Properties, WIA_SCAN_BRIGHTNESS_PERCENTS, brightnessPercents);
    SetWIAProperty(scannnerItem.Properties, WIA_SCAN_CONTRAST_PERCENTS, contrastPercents);
    SetWIAProperty(scannnerItem.Properties, WIA_SCAN_COLOR_MODE, colorMode);


private static void SetWIAProperty(IProperties properties, object propName, object propValue)

    Property prop = properties.get_Item(ref propName);
    prop.set_Value(ref propValue);

【讨论】:

太棒了!使用您的代码,我可以设置颜色。我仍然坚持颜色深度配置。有什么想法吗?

以上是关于WIA 扫描仪,无法获取/设置 4104 和 6146 属性(颜色、颜色深度)的主要内容,如果未能解决你的问题,请参考以下文章

WIA 扫描仪大图像尺寸

使用 C# 和 WIA 进行扫描

WIA:设置动态页面大小

无法在 Windows 7 x64 上使用 WIA 进行扫描

需要信息 TWAIN 和 WIA 驱动程序来扫描 C# 中的图像?

C# WIA 设置分辨率不会增加分辨率,而是增加图像的宽度和高度。在 C# 中