|
using Aspose.Imaging;
|
|
using Aspose.Imaging.FileFormats.Apng;
|
|
using Aspose.Imaging.FileFormats.Dicom;
|
|
using Aspose.Imaging.FileFormats.Gif;
|
|
using Aspose.Imaging.FileFormats.Gif.Blocks;
|
|
using Aspose.Imaging.FileFormats.Tiff;
|
|
using Aspose.Imaging.FileFormats.Tiff.Enums;
|
|
using Aspose.Imaging.FileFormats.Webp;
|
|
using Aspose.Imaging.ImageOptions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
string templatesFolder = @"c:\Users\USER\Downloads\templates\";
|
|
string dataDir = templatesFolder;
|
|
|
|
// Load frames
|
|
var frames = LoadFrames().ToArray();
|
|
|
|
// Create TIFF image using the first frame
|
|
using (var image = new TiffImage(new TiffFrame(frames[0])))
|
|
{
|
|
// Add frames to the TIFF image using the AddPage method
|
|
for (var index = 1; index < frames.Length; index++)
|
|
{
|
|
image.AddPage(frames[index]);
|
|
}
|
|
|
|
// Save TIFF image using options
|
|
var options = new TiffOptions(TiffExpectedFormat.TiffJpegRgb);
|
|
image.Save(dataDir + "result.tiff", options);
|
|
File.Delete(dataDir + "result.tiff");
|
|
}
|
|
|
|
// Create WEBP image using the first frame
|
|
using (var image = new WebPImage(frames[0]))
|
|
{
|
|
// Add frames to the WEBP image using the AddPage method
|
|
for (var index = 1; index < frames.Length; index++)
|
|
{
|
|
image.AddPage(frames[index]);
|
|
}
|
|
|
|
// Save WEBP image
|
|
image.Save(dataDir + "result.webp");
|
|
File.Delete(dataDir + "result.webp");
|
|
}
|
|
|
|
// Determine frame size
|
|
var framesize = frames[0].Size;
|
|
|
|
// Create APNG image
|
|
using (var image = new ApngImage(new ApngOptions(), framesize.Width, framesize.Height))
|
|
{
|
|
// Add frames to the APNG image using the AddPage method
|
|
for (var index = 0; index < frames.Length; index++)
|
|
{
|
|
image.AddPage(frames[index]);
|
|
}
|
|
|
|
// Save APNG image
|
|
image.Save(dataDir + "result.png");
|
|
File.Delete(dataDir + "result.png");
|
|
}
|
|
|
|
// Determine frame size
|
|
framesize = frames[0].Size;
|
|
|
|
// Create DICOM image
|
|
using (var image = new DicomImage(new DicomOptions(), framesize.Width, framesize.Height))
|
|
{
|
|
// Add frames to the APNG image using the AddPage method
|
|
for (var index = 0; index < frames.Length; index++)
|
|
{
|
|
image.AddPage(frames[index]);
|
|
}
|
|
|
|
// Remove default empty page
|
|
image.RemovePage(0);
|
|
|
|
// Save DICOM image
|
|
image.Save(dataDir + "result.dcm");
|
|
File.Delete(dataDir + "result.dcm");
|
|
}
|
|
|
|
foreach (RasterImage image in frames)
|
|
{
|
|
image.Dispose();
|
|
}
|
|
|
|
|
|
|
|
IEnumerable<RasterImage> LoadFrames()
|
|
{
|
|
foreach (var filePath in new string[] { "template.png", "template.tiff", "template.bmp" })
|
|
{
|
|
yield return (RasterImage)Image.Load(dataDir + filePath);
|
|
}
|
|
} |