AcquireImageSyncAsFileStream(WiaImageFileFormat) Method (WiaDevice)
In This Topic
Synchronously acquires one image as byte array from this WIA device.
Syntax
Parameters
- imageFileFormat
- The format of image file that should be returned by this WIA device.
If WIA device does not support specified image file format, WIA device will create image file in the device default image file format - in most cases in BMP format.
Return Value
A byte array that contains data of image file.
Exceptions
| Exception | Description |
| WiaException | Thrown if device is not opened OR document feeder is empty OR scan is failed. |
Remarks
This method must be called in a loop until method will not return null, i.e. there is no more images to scan.
Example
This C#/VB.NET code shows how to synchronously acquire images as JPEG stream from WIA device.
''' <summary>
''' Synchronously acquire images as JPEG stream from WIA image scanner.
''' </summary>
Public Sub SynchronouslyAcquireImagesAsJpegStreamFromWiaDevice()
' create WIA device manager
Using deviceManager As New Vintasoft.WiaImageScanning.WiaDeviceManager()
' open WIA device manager
deviceManager.Open()
' get count of WIA devices
Dim deviceCount As Integer = deviceManager.Devices.Count
If deviceCount = 0 Then
System.Console.WriteLine("Devices are not found.")
Return
End If
' select the first WIA device
Dim device As Vintasoft.WiaImageScanning.WiaDevice = deviceManager.Devices(0)
' open WIA device
device.Open()
Dim imageIndex As Integer = 0
Dim acquiredImageBytes As Byte() = Nothing
Do
Try
' acquire image as JPEG stream from WIA device
acquiredImageBytes = device.AcquireImageSyncAsFileStream(Vintasoft.WiaImageScanning.WiaImageFileFormat.JPEG)
' if image is received
If acquiredImageBytes IsNot Nothing Then
imageIndex += 1
Dim filename As String = String.Format("scannedImage-{0}.jpg", imageIndex)
If System.IO.File.Exists(filename) Then
System.IO.File.Delete(filename)
End If
System.IO.File.WriteAllBytes(filename, acquiredImageBytes)
System.Console.WriteLine(String.Format("Acquired image is saved to a file '{0}'.", filename))
Else
' if image is not received
System.Console.WriteLine("Scan is completed.")
Exit Try
End If
Catch ex As System.Exception
System.Console.WriteLine(String.Format("Scan is failed: {0}", ex.Message))
Exit Try
End Try
' while image is acquired
Loop While acquiredImageBytes IsNot Nothing
' close WIA device
device.Close()
' close WIA device manager
deviceManager.Close()
End Using
System.Console.ReadLine()
End Sub
/// <summary>
/// Synchronously acquire images as JPEG stream from WIA image scanner.
/// </summary>
public void SynchronouslyAcquireImagesAsJpegStreamFromWiaDevice()
{
// create WIA device manager
using (Vintasoft.WiaImageScanning.WiaDeviceManager deviceManager = new Vintasoft.WiaImageScanning.WiaDeviceManager())
{
// open WIA device manager
deviceManager.Open();
// get count of WIA devices
int deviceCount = deviceManager.Devices.Count;
if (deviceCount == 0)
{
System.Console.WriteLine("Devices are not found.");
return;
}
// select the first WIA device
Vintasoft.WiaImageScanning.WiaDevice device = deviceManager.Devices[0];
// open WIA device
device.Open();
int imageIndex = 0;
byte[] acquiredImageBytes = null;
do
{
try
{
// acquire image as JPEG stream from WIA device
acquiredImageBytes = device.AcquireImageSyncAsFileStream(Vintasoft.WiaImageScanning.WiaImageFileFormat.JPEG);
// if image is received
if (acquiredImageBytes != null)
{
imageIndex++;
string filename = string.Format("scannedImage-{0}.jpg", imageIndex);
if (System.IO.File.Exists(filename))
System.IO.File.Delete(filename);
System.IO.File.WriteAllBytes(filename, acquiredImageBytes);
System.Console.WriteLine(string.Format("Acquired image is saved to a file '{0}'.", filename));
}
// if image is not received
else
{
System.Console.WriteLine("Scan is completed.");
break;
}
}
catch (System.Exception ex)
{
System.Console.WriteLine(string.Format("Scan is failed: {0}", ex.Message));
break;
}
}
// while image is acquired
while (acquiredImageBytes != null);
// close WIA device
device.Close();
// close WIA device manager
deviceManager.Close();
}
System.Console.ReadLine();
}
Requirements
Target Platforms: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
See Also