如何获得扫描仪的可用分辨率和/或dpi。另外,如何获取它具有自动文档进纸器等的信息?获取WIA扫描仪功能
3
A
回答
1
您可以使用包含属性列表的Properties对象。使用Device对象的Properties对象访问扫描仪属性(文档进纸器),使用Item对象的Properties对象访问页面属性(分辨率)。
下面是一些代码:
DeviceManager manager = new DeviceManagerClass();
DeviceInfo scannerInfo = WiaHelper.FindFirstScanner(manager);
Device device = scannerInfo.Connect();
Item item = device.Items[1];
public static DeviceInfo FindFirstScanner(DeviceManager manager)
{
DeviceInfos infos = manager.DeviceInfos;
foreach (DeviceInfo info in infos)
if (info.Type == WiaDeviceType.ScannerDeviceType)
return info;
return null;
}
public static Property FindProperty(WIA.Properties properties, int propertyId)
{
foreach (Property property in properties)
if (property.PropertyID == propertyId)
return property;
return null;
}
public static void SetDeviceProperty(Device device, int propertyId, object value)
{
Property property = FindProperty(device.Properties, propertyId);
if (property != null)
property.set_Value(value);
}
public static object GetDeviceProperty(Device device, int propertyId)
{
Property property = FindProperty(device.Properties, propertyId);
return property != null ? property.get_Value() : null;
}
public static object GetItemProperty(Item item, int propertyId)
{
Property property = FindProperty(item.Properties, propertyId);
return property != null ? property.get_Value() : null;
}
public static void SetItemProperty(Item item, int propertyId, object value)
{
Property property = FindProperty(item.Properties, propertyId);
if (property != null)
property.set_Value(value);
}
5
您可以检索对象可用于您的扫描仪经由属性导航功能,如Matthias建议你。 这里是一个枚举,我和所有的属性及相关标识使用:
public enum WiaProperty
{
DeviceId = 2,
Manufacturer = 3,
Description = 4,
Type = 5,
Port = 6,
Name = 7,
Server = 8,
RemoteDevId = 9,
UIClassId = 10,
FirmwareVersion = 1026,
ConnectStatus = 1027,
DeviceTime = 1028,
PicturesTaken = 2050,
PicturesRemaining = 2051,
ExposureMode = 2052,
ExposureCompensation = 2053,
ExposureTime = 2054,
FNumber = 2055,
FlashMode = 2056,
FocusMode = 2057,
FocusManualDist = 2058,
ZoomPosition = 2059,
PanPosition = 2060,
TiltPostion = 2061,
TimerMode = 2062,
TimerValue = 2063,
PowerMode = 2064,
BatteryStatus = 2065,
Dimension = 2070,
HorizontalBedSize = 3074,
VerticalBedSize = 3075,
HorizontalSheetFeedSize = 3076,
VerticalSheetFeedSize = 3077,
SheetFeederRegistration = 3078, // 0 = LEFT_JUSTIFIED, 1 = CENTERED, 2 = RIGHT_JUSTIFIED
HorizontalBedRegistration = 3079, // 0 = LEFT_JUSTIFIED, 1 = CENTERED, 2 = RIGHT_JUSTIFIED
VerticalBedRegistraion = 3080, // 0 = TOP_JUSTIFIED, 1 = CENTERED, 2 = BOTTOM_JUSTIFIED
PlatenColor = 3081,
PadColor = 3082,
FilterSelect = 3083,
DitherSelect = 3084,
DitherPatternData = 3085,
DocumentHandlingCapabilities = 3086, // FEED = 0x01, FLAT = 0x02, DUP = 0x04, DETECT_FLAT = 0x08,
// DETECT_SCAN = 0x10, DETECT_FEED = 0x20, DETECT_DUP = 0x40,
// DETECT_FEED_AVAIL = 0x80, DETECT_DUP_AVAIL = 0x100
DocumentHandlingStatus = 3087, // FEED_READY = 0x01, FLAT_READY = 0x02, DUP_READY = 0x04,
// FLAT_COVER_UP = 0x08, PATH_COVER_UP = 0x10, PAPER_JAM = 0x20
DocumentHandlingSelect = 3088, // FEEDER = 0x001, FLATBED = 0x002, DUPLEX = 0x004, FRONT_FIRST = 0x008
// BACK_FIRST = 0x010, FRONT_ONLY = 0x020, BACK_ONLY = 0x040
// NEXT_PAGE = 0x080, PREFEED = 0x100, AUTO_ADVANCE = 0x200
DocumentHandlingCapacity = 3089,
HorizontalOpticalResolution = 3090,
VerticalOpticalResolution = 3091,
EndorserCharacters = 3092,
EndorserString = 3093,
ScanAheadPages = 3094, // ALL_PAGES = 0
MaxScanTime = 3095,
Pages = 3096, // ALL_PAGES = 0
PageSize = 3097, // A4 = 0, LETTER = 1, CUSTOM = 2
PageWidth = 3098,
PageHeight = 3099,
Preview = 3100, // FINAL_SCAN = 0, PREVIEW = 1
TransparencyAdapter = 3101,
TransparecnyAdapterSelect = 3102,
ItemName = 4098,
FullItemName = 4099,
ItemTimeStamp = 4100,
ItemFlags = 4101,
AccessRights = 4102,
DataType = 4103,
BitsPerPixel = 4104,
PreferredFormat = 4105,
Format = 4106,
Compression = 4107, // 0 = NONE, JPG = 5, PNG = 8
MediaType = 4108,
ChannelsPerPixel = 4109,
BitsPerChannel = 4110,
Planar = 4111,
PixelsPerLine = 4112,
BytesPerLine = 4113,
NumberOfLines = 4114,
GammaCurves = 4115,
ItemSize = 4116,
ColorProfiles = 4117,
BufferSize = 4118,
RegionType = 4119,
ColorProfileName = 4120,
ApplicationAppliesColorMapping = 4121,
StreamCompatibilityId = 4122,
ThumbData = 5122,
ThumbWidth = 5123,
ThumbHeight = 5124,
AudioAvailable = 5125,
AudioFormat = 5126,
AudioData = 5127,
PicturesPerRow = 5128,
SequenceNumber = 5129,
TimeDelay = 5130,
CurrentIntent = 6146,
HorizontalResolution = 6147,
VerticalResolution = 6148,
HorizontalStartPostion = 6149,
VerticalStartPosition = 6150,
HorizontalExtent = 6151,
VerticalExtent = 6152,
PhotometricInterpretation = 6153,
Brightness = 6154,
Contrast = 6155,
Orientation = 6156, // 0 = PORTRAIT, 1 = LANDSCAPE, 2 = 180°, 3 = 270°
Rotation = 6157, // 0 = PORTRAIT, 1 = LANDSCAPE, 2 = 180°, 3 = 270°
Mirror = 6158,
Threshold = 6159,
Invert = 6160,
LampWarmUpTime = 6161,
}
因为你可以阅读MSDN文档的每一个属性的可能值:
,或者如果您想深入了解,您可以分析原始SDK的头文件。
相关问题
- 1. WIA silverlight扫描仪集成
- 2. WIA +网络扫描仪,adf = 1页
- 3. 使用WIA获取图像/扫描
- 4. 获取扫描仪信息
- 5. WIA平板扫描
- 6. twain扫描仪不从扫描仪获取图像
- 7. WIA 2.0双面扫描
- 8. Multipage WIA扫描(docfeeder)扫描1页并阻止扫描器
- 9. 扫描仪内的扫描仪错误
- 10. 扫描,扫描仪类
- 11. 使用zxing条码扫描仪获取条码扫描图像?
- 12. 从扫描仪获取图像
- 13. 如何从扫描仪获取图像?
- 14. 使用Java扫描仪获取行数
- 15. 使用扫描仪获取NoSuchElement发现
- 16. 在java性能扫描仪
- 17. 没有扫描仪/相机设备测试WIA
- 18. 使用WIA设置页面大小(使用扫描仪)
- 19. 可以听两个(也许WIA)扫描仪吗?
- 20. 取消指纹扫描仪
- 21. 读取文件,扫描仪
- 22. 使用扫描仪读取
- 23. 扫描仪+ TesterClass?
- 24. JFileChooser扫描仪?
- 25. 扫描仪NoSuchElementException
- 26. 与扫描仪
- 27. 与扫描仪
- 28. 扫描仪,useDelimiter
- 29. 由扫描仪
- 30. 在成功扫描时禁用符号扫描仪'哔'?