У меня есть следующий код в моем приложении C #. Я хочу, чтобы он захватывал сканированный документ с помощью WIA в переменную byte [], но я не смог преобразовать .__comobject
в byte []
private void btnScan_Click(object sender, EventArgs e)
{
try
{
var deviceManager = new DeviceManager();
DeviceInfo AvailableScanner = null;
for (int i = 1; i <= deviceManager.DeviceInfos.Count; i++) // Loop Through the get List Of Devices.
{
if (deviceManager.DeviceInfos[i].Type != WiaDeviceType.ScannerDeviceType) // Skip device If it is not a scanner
{
continue;
}
AvailableScanner = deviceManager.DeviceInfos[i];
break;
}
var device = AvailableScanner.Connect(); //Connect to the available scanner.
var ScanerItem = device.Items[1]; // select the scanner.
var imgFile = ScanerItem.Transfer(FormatID.wiaFormatJPEG); //Retrive an image in Jpg format and store it into a variable.
TypeConverter obj = TypeDescriptor.GetConverter(imgFile.GetType());
byte[] bt = (byte[])obj.ConvertTo(imgFile, typeof(byte[]));
MemoryStream ms = new MemoryStream(bt);
pictureBox1.Image = Image.FromStream(ms);
//PictureBox1.Image = img;
}
catch(COMException ex)
{
MessageBox.Show(ex.ToString());
}
}