ImageSaving Событие (ImageCollection)
В этом разделе
Происходит при сохранении изображения из этой коллекции изображений.
Синтаксис
Ремарки
Это событие может возникнуть, если коллекция изображений сохраняется синхронно (SaveSync(Stream,EncoderBase)) или асинхронно (SaveAsync(Stream,EncoderBase)).
Пример
Вот C#/VB.NET код, который демонстрирует, как объединить несколько файлов изображений в один TIFF файл или PDF и получить статус процесса сохранения.
Class ImageCollectionEncoder
Private _filename As String
Private _pageIndex As Integer
''' <summary>
''' Merges some image files into one TIFF or PDF file.
''' </summary>
''' <param name="inFilenames"></param>
''' <param name="outFilename"></param>
Public Sub MergeImageFilesSynchronously(inFilenames As String(), outFilename As String)
Dim images As New Vintasoft.Imaging.ImageCollection()
AddHandler images.ImageSaving, New System.EventHandler(Of Vintasoft.Imaging.ImageSavingEventArgs)(AddressOf _images_ImageSaving)
AddHandler images.ImageSaved, New System.EventHandler(Of Vintasoft.Imaging.ImageEventArgs)(AddressOf _images_ImageSaved)
For Each filename As String In inFilenames
If filename Is Nothing Then
Exit For
End If
' add images from file to image collection
images.Add(filename)
Next
Try
' save images from image collection to the output file
images.SaveSync(outFilename)
Catch ex As Vintasoft.Imaging.Codecs.Encoders.TiffEncoderException
System.Console.WriteLine("Saving error: Filename={0}, PageIndex={1}, ErrorMessage={2}", _filename, _pageIndex, ex.Message)
System.Console.ReadKey()
End Try
' clear image collection
images.ClearAndDisposeItems()
End Sub
Private Sub _images_ImageSaving(sender As Object, e As Vintasoft.Imaging.ImageSavingEventArgs)
_filename = e.Image.SourceInfo.Filename
_pageIndex = e.Image.SourceInfo.PageIndex
System.Console.WriteLine("Image saving: Filename={0}, PageIndex={1}", _filename, _pageIndex)
End Sub
Private Sub _images_ImageSaved(sender As Object, e As Vintasoft.Imaging.ImageEventArgs)
System.Console.WriteLine("Image saved: Filename={0}, PageIndex={1}", _filename, _pageIndex)
End Sub
End Class
class ImageCollectionEncoder
{
string _filename;
int _pageIndex;
/// <summary>
/// Merges some image files into one TIFF or PDF file.
/// </summary>
/// <param name="inFilenames"></param>
/// <param name="outFilename"></param>
public void MergeImageFilesSynchronously(string[] inFilenames, string outFilename)
{
Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection();
images.ImageSaving += new System.EventHandler<Vintasoft.Imaging.ImageSavingEventArgs>(_images_ImageSaving);
images.ImageSaved += new System.EventHandler<Vintasoft.Imaging.ImageEventArgs>(_images_ImageSaved);
foreach (string filename in inFilenames)
{
if (filename == null)
break;
// add images from file to image collection
images.Add(filename);
}
try
{
// save images from image collection to the output file
images.SaveSync(outFilename);
}
catch (Vintasoft.Imaging.Codecs.Encoders.TiffEncoderException ex)
{
System.Console.WriteLine(
"Saving error: Filename={0}, PageIndex={1}, ErrorMessage={2}", _filename, _pageIndex, ex.Message);
System.Console.ReadKey();
}
// clear image collection
images.ClearAndDisposeItems();
}
private void _images_ImageSaving(object sender, Vintasoft.Imaging.ImageSavingEventArgs e)
{
_filename = e.Image.SourceInfo.Filename;
_pageIndex = e.Image.SourceInfo.PageIndex;
System.Console.WriteLine("Image saving: Filename={0}, PageIndex={1}", _filename, _pageIndex);
}
private void _images_ImageSaved(object sender, Vintasoft.Imaging.ImageEventArgs e)
{
System.Console.WriteLine("Image saved: Filename={0}, PageIndex={1}", _filename, _pageIndex);
}
}
Требования
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Смотрите также