SaveAsync(String) Метод (ImageCollection)
В этом разделе
Асинхронно сохраняет все изображения из этой коллекции в указанный многостраничный файл изображения (JBIG2/PDF/TIFF).
Синтаксис
'Declaration
Public Overloads Sub SaveAsync( _
ByVal As System.String _
)
public void SaveAsync(
System.String
)
public: void SaveAsync(
System.String
)
public:
void SaveAsync(
System.String
)
Parameters
- filename
- Имя файла, в котором должна быть сохранена коллекция изображений.
Исключения
Ремарки
Этот метод работает асинхронно, т. е. для сохранения изображений создается отдельный поток.
Поддерживаемые форматы изображений: 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
- файл, указанный filename, перезаписывается, если он существует, значение параметра createNewFile игнорируется
- процесс сохранения не может быть отменен, сохранение изображений не может быть подавлено
- источники изображений в коллекции изображений изменяются, т. е. images[i].SourceInfo.Filename изменяется на filename
, если
Этот метод
- изменяет изображения в исходном файле JBIG2/PDF/TIFF, если некоторые изображения исходного файла изменены в коллекции изображений.
- удаляет изображения из исходного файла JBIG2/PDF/TIFF, если некоторые изображения исходного файла удалены из коллекции изображений.
- добавляет изображения в исходный файл JBIG2/PDF/TIFF, если некоторые изображения НЕ из исходного файла добавлены в коллекцию изображений.
- переиндексирует изображения в исходном файле JBIG2/PDF/TIFF, если изображения переиндексированы в коллекции изображений.
- файл, указанный параметром filename, перезаписывается, если он существует, значение параметра createNewFile игнорируется.
- процесс сохранения не может быть отменен, сохранение изображений не может быть подавлено.
- источники изображений в коллекции изображений изменяются, т. е. images[i].SourceInfo.Filename изменяется на 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.
''' </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
' start the asynchronously image collection saving
images.SaveAsync("new-file-name.tif")
' wait while image saving process will be 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.
/// </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;
// start the asynchronously image collection saving
images.SaveAsync("new-file-name.tif");
// wait while image saving process will be 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
Смотрите также