VintaSoft Twain .NET SDK 15.1: Руководство для .NET разработчика
Vintasoft.WpfTwain 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 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

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