在我的C#应用程序中,我通过WIA使用扫描仪,这里我的要求是扫描仪应扫描1到50张图像的一组图像,我在我的应用程序中添加了一个文本框,用于输入要扫描的图像数量。
我的应用程序必须从文本框中取出数字,扫描程序应扫描多次。我的问题是这个扫描部分工作得很好,而扫描进度条只显示扫描第一张图像,扫描剩余图像时没有显示。
这是我正在使用的代码:
namespace Scnr2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog FBD = new SaveFileDialog();
if (FBD.ShowDialog() == DialogResult.OK)
{
int n = Convert.ToInt32(textBox1.Text);
for (int i = 0; i < n; i++)
{
ScannerService sr = new ScannerService();
ImageFile image = sr.Scan();
image.SaveFile(FBD.FileName + ".jpg");
}
}
}
}
public class ScannerService
{
public ImageFile Scan()
{
ImageFile image;
WIA.CommonDialog dialog = new WIA.CommonDialog();
DeviceManager dm = new DeviceManagerClass();
Device scannerDevice = dialog.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, false, false);
Item scannerItem;
if (scannerDevice == null)
MessageBox.Show("No");
if (scannerDevice != null)
{
scannerItem = scannerDevice.Items[1];
image = dialog.ShowAcquireImage(
WIA.WiaDeviceType.ScannerDeviceType,
WIA.WiaImageIntent.ColorIntent,
WIA.WiaImageBias.MaximizeQuality,
WIA.FormatID.wiaFormatJPEG,
false,
true,
false);
return image;
}
return null;
}
}
}