SaveAsync(String,Boolean) Метод (ImageCollection) 
 
            
                В этом разделе
            
            Асинхронно сохраняет все изображения из этой коллекции в указанный многостраничный файл изображения (JBIG2/PDF/TIFF).
            
            
Синтаксис
            
            
            
            
            'Declaration
Public Overloads Sub SaveAsync( _
   ByVal  As System.String, _
   ByVal  As Boolean _
)
 
            
            public void SaveAsync(
   System.String , 
   bool 
)
 
            
            public: void SaveAsync(
   System.String , 
   bool 
)
 
            
            public:
void SaveAsync(
   System.String , 
   bool 
)
 
             
	Parameters
- filename
 
- Имя файла, в котором должна быть сохранена коллекция изображений.
 
- createNewFile
 
- Значение, указывающее, следует ли создавать новый файл.
 
         
Исключения
| Исключение | Описание | 
| System.ArgumentNullException | Выбрасывается, если filename равен null. | 
| System.InvalidOperationException | Выбрасывается, если коллекция изображений не содержит изображений или в данный момент выполняется другой процесс сохранения. | 
| EncoderException | Выбрасывается, если кодировщик не найден для указанного расширения файла или при сохранении изображения произошла ошибка. | 
 
Ремарки
Этот метод работает асинхронно, т.е. для сохранения изображений создается отдельный поток.
 
 Поддерживаемые форматы изображений: 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
  
, если 
  Этот метод 
 - изменяет изображения в исходном файле 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 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
 
Смотрите также