VintaSoft Imaging .NET SDK 14.0: Документация для .NET разработчика
Vintasoft.Imaging Namespace / ImageCollection Class / SaveAsync Methods / SaveAsync(String,Boolean) Method
Синтаксис Exceptions Ремарки Example Требования Смотрите также
В этом разделе
    SaveAsync(String,Boolean) Метод (ImageCollection)
    В этом разделе
    Асинхронно сохраняет все изображения из этой коллекции в указанный многостраничный файл изображения (JBIG2/PDF/TIFF).
    Синтаксис
    'Declaration
    
    Public Overloads Sub SaveAsync( _
    ByVal filename
    Имя файла, в котором должна быть сохранена коллекция изображений.
    As System.String, _
    ByVal createNewFile
    Значение, указывающее, следует ли создавать новый файл.
    As Boolean _
    )
    public void SaveAsync(
    System.String filename,
    bool createNewFile
    )
    public: void SaveAsync(
    System.String filename,
    bool createNewFile
    )
    public:
    void SaveAsync(
    System.String filename,
    bool createNewFile
    )

    Parameters

    filename
    Имя файла, в котором должна быть сохранена коллекция изображений.
    createNewFile
    Значение, указывающее, следует ли создавать новый файл.
    Исключения
    ИсключениеОписание
    Выбрасывается, если filename равен null.
    Выбрасывается, если коллекция изображений не содержит изображений или в данный момент выполняется другой процесс сохранения.
    Выбрасывается, если кодировщик не найден для указанного расширения файла или при сохранении изображения произошла ошибка.
    Ремарки

    Этот метод работает асинхронно, т.е. для сохранения изображений создается отдельный поток.

    Поддерживаемые форматы изображений: JBIG2, PDF, TIFF.

    Подходящий кодировщик выбирается автоматически из расширение имени файла, исключение выдается, если кодировщик не найден для расширения файла, указанного в filename.

    Этот метод

    • сохраняет изображения в новый файл JBIG2/PDF/TIFF, указанный filename
    • файл, указанный filename, перезаписывается, если он существует.
    • процесс сохранения можно отменить, сохранение изображения можно подавлять.
    • Источники изображений в коллекции изображений не изменяются, т. е. images[i].SourceInfo.Filename не изменяется
    , если
    • filename != images[0]..SourceInfo.Filename
    • SaveAndSwitchSource имеет значение false
    • createNewFile имеет значение true

    Этот метод
    • добавляет изображения в существующий файл JBIG2/PDF/TIFF, указанный в filename
    • процесс сохранения можно отменить, сохранение изображений можно запретить
    • источники изображений в коллекции изображений не изменяются, т.е. images[i].SourceInfo.Filename не изменяется
    , если
    • filename != images[0]..SourceInfo.Filename
    • SaveAndSwitchSource имеет значение false
    • createNewFile имеет значение false

    Этот метод
    • сохраняет изображения в новый файл JBIG2/PDF/TIFF, указанный в filename
    • .
    • файл, указанный в filename, перезаписывается, если он существует, значение createNewFile параметр игнорируется.
    • процесс сохранения не может быть отменен, сохранение изображений не может быть подавлено.
    • изменяются источники изображений в коллекции изображений, т.е. images[i].SourceInfo.Filename изменяется на filename
    , если
    • filename != images[0].SourceInfo.Filename
    • SaveAndSwitchSource имеет значение true

    Этот метод
    • изменяет изображения в исходном файле JBIG2/PDF/TIFF, если некоторые изображения исходного файла изменены в коллекции изображений.
    • удаляет изображения из исходного файла JBIG2/PDF/TIFF. если некоторые изображения исходного файла удалены из коллекции изображений
    • добавляет изображения в исходный файл JBIG2/PDF/TIFF, если некоторые изображения НЕ из исходного файла добавляются в коллекцию изображений
    • переиндексировать изображения в исходном файле JBIG2/PDF/TIFF, если изображения переиндексированы в коллекции изображений.
    • файл, указанный в filename, перезаписывается, если он существует, значение параметра createNewFile игнорируется.
    • Процесс сохранения нельзя отменить, сохранение изображений нельзя подавить.
    • Изменены источники изображений в коллекции изображений, т.е. изображения [i].Исходная информация.Имя файла изменяется на filename
    , если
    Этот метод
    • вызывает исключение
    , если
    Событие ImageSaving произойдет перед сохранением каждого изображения. В этом событии вы можете получить информацию об изображении, подавить сохранение изображения или отменить процесс сохранения изображения.
    Событие ImageSaved произойдет после сохранения каждого изображения. В этом событии вы можете получить информацию о ходе процесса сохранения изображений или отменить процесс сохранения изображения.

    Пример

    Этот пример показывает, как сохранить коллекцию изображений асинхронно.

    
    ''' <summary>
    ''' Indicates whether image collection saving process is finished.
    ''' </summary>
    Private _isImagesSavingProcessFinished As Boolean = False
    
    
    
    ''' <summary>
    ''' Asynchronously saves an image collection to a file and
    ''' switches image collection to the saved file.
    ''' </summary>
    Public Sub ImageCollectionSaveAsyncExample()
        ' create image collection
        Dim images As New Vintasoft.Imaging.ImageCollection()
    
        ' add several images into collection
        ' [ do not forget to set your image file paths here! ]
        images.Add("testImage1.jpg")
        images.Add("testImage2.bmp")
        images.Add("testImage3.png")
    
        ' subscribe to the image collection events
        AddHandler images.ImageCollectionSaving, New System.EventHandler(Of Vintasoft.Imaging.ImageCollectionSavingEventArgs)(AddressOf images_ImageCollectionSaving)
        AddHandler images.ImageCollectionSavingProgress, New System.EventHandler(Of Vintasoft.Imaging.ProgressEventArgs)(AddressOf images_ImageCollectionSavingProgress)
        AddHandler images.ImageCollectionSaved, New System.EventHandler(AddressOf images_ImageCollectionSaved)
        AddHandler images.ImageSavingException, New System.EventHandler(Of Vintasoft.Imaging.ExceptionEventArgs)(AddressOf images_ImageSavingException)
        AddHandler images.ImageCollectionSavingFinished, New System.EventHandler(AddressOf images_ImageCollectionSavingFinished)
    
        _isImagesSavingProcessFinished = False
        ' save image collection asynchronously
        ' if a file with such name exists, it will be overwritten
        images.SaveAsync("new-file-name.tif", True)
    
        ' wait while image saving process is finished
        While Not _isImagesSavingProcessFinished
            System.Threading.Thread.Sleep(1)
        End While
        
    
    End Sub
    
    ''' <summary>
    ''' Image collection saving process is started.
    ''' </summary>
    Private Sub images_ImageCollectionSaving(sender As Object, e As Vintasoft.Imaging.ImageCollectionSavingEventArgs)
        System.Console.Write("Progress: ")
    End Sub
    
    ''' <summary>
    ''' Image collection saving process is in progress.
    ''' </summary>
    Private Sub images_ImageCollectionSavingProgress(sender As Object, e As Vintasoft.Imaging.ProgressEventArgs)
        System.Console.Write(String.Format("{0}% ", e.Progress))
    End Sub
    
    ''' <summary>
    ''' Image collection is saved successfully.
    ''' </summary>
    Private Sub images_ImageCollectionSaved(sender As Object, e As System.EventArgs)
        System.Console.WriteLine("Images are saved successfully.")
    End Sub
    
    ''' <summary>
    ''' Image collection is NOT saved.
    ''' </summary>
    Private Sub images_ImageSavingException(sender As Object, e As Vintasoft.Imaging.ExceptionEventArgs)
        System.Console.WriteLine(e.Exception.Message)
        System.Console.WriteLine("Images are NOT saved.")
    End Sub
    
    ''' <summary>
    ''' Image collection saving process is finished.
    ''' </summary>
    Private Sub images_ImageCollectionSavingFinished(sender As Object, e As System.EventArgs)
        Dim images As Vintasoft.Imaging.ImageCollection = DirectCast(sender, Vintasoft.Imaging.ImageCollection)
    
        ' unsubscribe from image collection events
        RemoveHandler images.ImageCollectionSaving, AddressOf images_ImageCollectionSaving
        RemoveHandler images.ImageCollectionSavingProgress, AddressOf images_ImageCollectionSavingProgress
        RemoveHandler images.ImageCollectionSaved, AddressOf images_ImageCollectionSaved
        RemoveHandler images.ImageSavingException, AddressOf images_ImageSavingException
        RemoveHandler images.ImageCollectionSavingFinished, AddressOf images_ImageCollectionSavingFinished
    
        ' indicate that image collection saving process is finished
        _isImagesSavingProcessFinished = True
    End Sub
    
    
    
    /// <summary>
    /// Indicates whether image collection saving process is finished.
    /// </summary>
    bool _isImagesSavingProcessFinished = false;
    
    
    
    /// <summary>
    /// Asynchronously saves an image collection to a file and
    /// switches image collection to the saved file.
    /// </summary>
    public void ImageCollectionSaveAsyncExample()
    {
        // create image collection
        Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection();
    
        // add several images into collection
        // [ do not forget to set your image file paths here! ]
        images.Add("testImage1.jpg");
        images.Add("testImage2.bmp");
        images.Add("testImage3.png");
    
        // subscribe to the image collection events
        images.ImageCollectionSaving +=
            new System.EventHandler<Vintasoft.Imaging.ImageCollectionSavingEventArgs>(images_ImageCollectionSaving);
        images.ImageCollectionSavingProgress += new System.EventHandler<Vintasoft.Imaging.ProgressEventArgs>(
            images_ImageCollectionSavingProgress);
        images.ImageCollectionSaved += new System.EventHandler(images_ImageCollectionSaved);
        images.ImageSavingException += new System.EventHandler<Vintasoft.Imaging.ExceptionEventArgs>(
            images_ImageSavingException);
        images.ImageCollectionSavingFinished += new System.EventHandler(images_ImageCollectionSavingFinished);
    
        _isImagesSavingProcessFinished = false;
        // save image collection asynchronously
        // if a file with such name exists, it will be overwritten
        images.SaveAsync("new-file-name.tif", true);
    
        // wait while image saving process is finished
        while (!_isImagesSavingProcessFinished)
        {
            System.Threading.Thread.Sleep(1);
        };
    }
    
    /// <summary>
    /// Image collection saving process is started.
    /// </summary>
    private void images_ImageCollectionSaving(object sender, Vintasoft.Imaging.ImageCollectionSavingEventArgs e)
    {
        System.Console.Write("Progress: ");
    }
    
    /// <summary>
    /// Image collection saving process is in progress.
    /// </summary>
    private void images_ImageCollectionSavingProgress(object sender, Vintasoft.Imaging.ProgressEventArgs e)
    {
        System.Console.Write(string.Format("{0}% ", e.Progress));
    }
    
    /// <summary>
    /// Image collection is saved successfully.
    /// </summary>
    private void images_ImageCollectionSaved(object sender, System.EventArgs e)
    {
        System.Console.WriteLine("Images are saved successfully.");
    }
    
    /// <summary>
    /// Image collection is NOT saved.
    /// </summary>
    private void images_ImageSavingException(object sender, Vintasoft.Imaging.ExceptionEventArgs e)
    {
        System.Console.WriteLine(e.Exception.Message);
        System.Console.WriteLine("Images are NOT saved.");
    }
    
    /// <summary>
    /// Image collection saving process is finished.
    /// </summary>
    private void images_ImageCollectionSavingFinished(object sender, System.EventArgs e)
    {
        Vintasoft.Imaging.ImageCollection images = (Vintasoft.Imaging.ImageCollection)sender;
    
        // unsubscribe from image collection events
        images.ImageCollectionSaving -= images_ImageCollectionSaving;
        images.ImageCollectionSavingProgress -= images_ImageCollectionSavingProgress;
        images.ImageCollectionSaved -= images_ImageCollectionSaved;
        images.ImageSavingException -= images_ImageSavingException;
        images.ImageCollectionSavingFinished -= images_ImageCollectionSavingFinished;
    
        // indicate that image collection saving process is finished
        _isImagesSavingProcessFinished = true;
    }
    
    

    Требования

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

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