VintaSoft Twain .NET SDK 15.4: Руководство для .NET разработчика
Vintasoft.Twain Namespace / AcquiredImage Class / GetAsStream(TwainImageEncoderSettings) Method
Синтаксис Exceptions Ремарки Example Требования Смотрите также
В этом разделе
GetAsStream(TwainImageEncoderSettings) Метод (AcquiredImage)
В этом разделе
Возвращает это изображение как объект System.IO.MemoryStream.
Синтаксис
Исключения
ИсключениеОписание
Выбрасывается, если возникает ошибка при сохранении изображения.
Ремарки

Метод:

  • Возвращает данные изображения, полученные от сканера, без изменений, если данные изображения могут быть сохранены в указанном формате файла изображения, например, сканер вернул данные изображения, сжатые с помощью сжатия CCITT4, а вы хотите получить данные в виде файла TIFF (TIFF поддерживает сжатие CCITT4).
  • Преобразует данные изображения, полученные от сканера, если данные изображения не могут быть сохранены в указанном формате файла изображения, например, сканер возвратил данные изображения, сжатые с помощью сжатия CCITT4 и вы хотите получить данные в виде BMP файла (BMP не поддерживает сжатие CCITT4).

Пример

Вот C#/VB.NET код, который демонстрирует, как сохранить все полученные изображения в виде многостраничного PDF документа в памяти. Далее PDF документ можно сохранить в базу данных или перенести на сервер.


Private Shared Sub AcquireImagesAndSaveToStreamAsPdf()
    ' create the device manager
    Using deviceManager As New Vintasoft.Twain.DeviceManager()
        ' open the device manager
        deviceManager.Open()

        ' select the device in the default device selectio ndialog
        deviceManager.ShowDefaultDeviceSelectionDialog()

        ' get reference to the selected device
        Dim device As Vintasoft.Twain.Device = deviceManager.DefaultDevice

        ' specify that device UI must not be used
        device.ShowUI = False
        ' specify that device must be closed after scan
        device.DisableAfterAcquire = True

        ' acquire images from device
        Dim acquireModalState As Vintasoft.Twain.AcquireModalState = Vintasoft.Twain.AcquireModalState.None
        Dim mem As System.IO.MemoryStream = Nothing
        Dim firstImage As Boolean = True
        Do
            acquireModalState = device.AcquireModal()
            Select Case acquireModalState
                Case Vintasoft.Twain.AcquireModalState.ImageAcquired
                    ' save all acquired images as PDF stored in the memory
                    If firstImage Then
                        ' get the first image as PDF stored in the memory
                        mem = device.AcquiredImage.GetAsStream(New Vintasoft.Twain.ImageEncoders.TwainPdfEncoderSettings())
                        firstImage = False
                    Else
                        ' add image to PDF stored in the memory
                        device.AcquiredImage.Save(mem, New Vintasoft.Twain.ImageEncoders.TwainPdfEncoderSettings())
                    End If

                    ' dispose the acquired image
                    device.AcquiredImage.Dispose()
                    Exit Select
            End Select
        Loop While acquireModalState <> Vintasoft.Twain.AcquireModalState.None

        ' Upload stream data to the server or doing something else...
        ' ...

        ' close the device
        device.Close()

        ' close the device manager
        deviceManager.Close()
    End Using
End Sub


static void AcquireImagesAndSaveToStreamAsPdf()
{
    // create the device manager
    using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
    {
        // open the device manager
        deviceManager.Open();

        // select the device in the default device selectio ndialog
        deviceManager.ShowDefaultDeviceSelectionDialog();

        // get reference to the selected device
        Vintasoft.Twain.Device device = deviceManager.DefaultDevice;

        // specify that device UI must not be used
        device.ShowUI = false;
        // specify that device must be closed after scan
        device.DisableAfterAcquire = true;

        // acquire images from device
        Vintasoft.Twain.AcquireModalState acquireModalState = Vintasoft.Twain.AcquireModalState.None;
        System.IO.MemoryStream mem = null;
        bool firstImage = true;
        do
        {
            acquireModalState = device.AcquireModal();
            switch (acquireModalState)
            {
                case Vintasoft.Twain.AcquireModalState.ImageAcquired:
                    // save all acquired images as PDF stored in the memory
                    if (firstImage)
                    {
                        // get the first image as PDF stored in the memory
                        mem = device.AcquiredImage.GetAsStream(new Vintasoft.Twain.ImageEncoders.TwainPdfEncoderSettings());
                        firstImage = false;
                    }
                    else
                    {
                        // add image to PDF stored in the memory
                        device.AcquiredImage.Save(mem, new Vintasoft.Twain.ImageEncoders.TwainPdfEncoderSettings());
                    }

                    // dispose the acquired image
                    device.AcquiredImage.Dispose();
                    break;
            }
        }
        while (acquireModalState != Vintasoft.Twain.AcquireModalState.None);

        // Upload stream data to the server or doing something else...
        // ...

        // close the device
        device.Close();

        // close the device manager
        deviceManager.Close();
    }
}

Требования

Целевые платформы: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также