Сохранение коллекции изображений
В этом разделе
Метод
ImageCollection.SaveSync можно использовать для синхронного сохранения коллекции изображений в файл или поток.
Метод
ImageCollection.SaveAsync можно использовать для асинхронного сохранения коллекции изображений в файл или поток.
Вот список поддерживаемых энкодеров изображений:
- BMP
- GIF
- Icon / Cursor
- JBIG2 (необходим плагин VintaSoft JBIG2 .NET Plug-in)
- JPEG
- JPEG2000 (необходим плагин VintaSoft JPEG2000 .NET Plug-in)
- PBM, PGM, PPM
- PCX
- PDF (необходим плагин VintaSoft PDF .NET Plug-in)
- PNG
- SVG
- TGA
- TIFF, BigTIFF
- WEBP
Энкодер, передаваемый в качестве параметра метода, определяет параметры сохранения: сохранение изображения с аннотациями, сохранение в тот же источник, копирование TIFF-тегов, копирование EXIF-данных и многое другое.
Вот C#/VB.NET код, который демонстрирует, как синхронно добавить изображения в существующий TIFF-файл:
Vintasoft.Imaging.ImageCollection images =
new Vintasoft.Imaging.ImageCollection();
images.Add("myimage1.png");
images.Add("myimage2.jpg");
// add images to an existing TIFF file
Vintasoft.Imaging.Codecs.Encoders.TiffEncoder encoder =
new Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(false);
images.SaveSync("mydocument.tif", encoder);
Dim images As New Vintasoft.Imaging.ImageCollection()
images.Add("myimage1.png")
images.Add("myimage2.jpg")
' add images to an existing TIFF file
Dim encoder As New Vintasoft.Imaging.Codecs.Encoders.TiffEncoder(False)
images.SaveSync("mydocument.tif", encoder)
Вот C#/VB.NET код, который демонстрирует, как открыть TIFF-файл, повернуть вторую страницу TIFF-файла и сохранить изменения в TIFF-файл:
// open TIFF file
System.IO.FileStream fStream = new System.IO.FileStream(
"multipage.tif", System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite);
Vintasoft.Imaging.ImageCollection images =
new Vintasoft.Imaging.ImageCollection();
images.Add(fStream);
// rotate the second page of TIFF file
images[1].Rotate(90);
// save changes to TIFF file
Vintasoft.Imaging.Codecs.Encoders.TiffEncoder encoder =
new Vintasoft.Imaging.Codecs.Encoders.TiffEncoder();
encoder.SaveAndSwitchSource = true;
images.SaveSync(fStream, encoder);
' open TIFF file
Dim fStream As New System.IO.FileStream("multipage.tif", System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)
Dim images As New Vintasoft.Imaging.ImageCollection()
images.Add(fStream)
' rotate the second page of TIFF file
images(1).Rotate(90)
' save changes to TIFF file
Dim encoder As New Vintasoft.Imaging.Codecs.Encoders.TiffEncoder()
encoder.SaveAndSwitchSource = True
images.SaveSync(fStream, encoder)
Вот C#/VB.NET код, который демонстрирует, как асинхронно добавить изображения в новый PDF документ:
// ...
Vintasoft.Imaging.ImageCollection images =
new Vintasoft.Imaging.ImageCollection();
images.Add("myimage1.png");
images.Add("myimage2.jpg");
// create new PDF document
Vintasoft.Imaging.Codecs.Encoders.PdfEncoder encoder =
new Vintasoft.Imaging.Codecs.Encoders.PdfEncoder(true);
encoder.Settings.DocumentAuthor = "VintaSoft LLC.";
encoder.Settings.DocumentTitle = "My document title.";
encoder.Settings.DocumentCreator = "VintaSoft Imaging .NET SDK";
encoder.Settings.DocumentCreationDate = System.DateTime.Now;
images.SaveAsync("mydocument.pdf", encoder);
// ...
' ...
Dim images As New Vintasoft.Imaging.ImageCollection()
images.Add("myimage1.png")
images.Add("myimage2.jpg")
' create new PDF document
Dim encoder As New Vintasoft.Imaging.Codecs.Encoders.PdfEncoder(True)
encoder.Settings.DocumentAuthor = "VintaSoft LLC."
encoder.Settings.DocumentTitle = "My document title."
encoder.Settings.DocumentCreator = "VintaSoft Imaging .NET SDK"
encoder.Settings.DocumentCreationDate = System.DateTime.Now
images.SaveAsync("mydocument.pdf", encoder)
' ...
События
Событие
ImageCollection.ImageCollectionSaving возникает до сохранения коллекции изображений.
Для каждого изображения из коллекции изображений:
Cобытие
ImageCollection.ImageCollectionSavingFinished возникает по завершении процесса сохранения коллекции изображений.
Событие
ImageCollection.ImageCollectionSaved возникает при успешном сохранении коллекции изображений.
Все события класса Vintasoft.Imaging.ImageCollection не являются потокобезопасными.