Class ApngOptions
ApngOptions class
The API for Animated PNG (Animated Portable Network Graphics) image file format creation is a dynamic tool for developers seeking to generate captivating animated images. With customizable options such as frame duration and the number of times to loop, this API allows for fine-tuning animated content according to specific needs. Whether creating engaging web graphics or interactive visuals, you can leverage this API to seamlessly incorporate APNG images with precise control over animation parameters.
public class ApngOptions : PngOptions
Constructors
Name | Description |
---|---|
ApngOptions() | Initializes a new instance of the ApngOptions class. |
Properties
Name | Description |
---|---|
BitDepth { get; set; } | Gets or sets the bit depth values in range of 1, 2, 4, 8, 16. |
BufferSizeHint { get; set; } | Gets or sets the buffer size hint which is defined max allowed size for all internal buffers. |
ColorType { get; set; } | Gets or sets the type of the color. |
CompressionLevel { get; set; } | Gets or sets the PngImage compression level in the range of 0-9. The higher the value - the more efficient the compression. |
DefaultFrameTime { get; set; } | Gets or sets the default frame duration. |
Disposed { get; } | Gets a value indicating whether this instance is disposed. |
FilterType { get; set; } | Gets or sets the filter type used during png file save process. |
FullFrame { get; set; } | Gets or sets a value indicating whether [full frame]. |
KeepMetadata { get; set; } | Gets a value whether to keep original image metadata on export. |
MultiPageOptions { get; set; } | The multipage options |
NumPlays { get; set; } | Gets or sets the number of times to loop animation. 0 indicates infinite looping. |
virtual Palette { get; set; } | Gets or sets the color palette. |
ProgressEventHandler { get; set; } | Gets or sets the progress event handler. |
Progressive { get; set; } | Gets or sets a value indicating whether a PngImage is progressive. |
virtual ResolutionSettings { get; set; } | Gets or sets the resolution settings. |
Source { get; set; } | Gets or sets the source to create image in. |
VectorRasterizationOptions { get; set; } | Gets or sets the vector rasterization options. |
virtual XmpData { get; set; } | Gets or sets the XMP metadata container. |
Methods
Name | Description |
---|---|
virtual Clone() | Creates a memberwise clone of this instance. |
Dispose() | Disposes the current instance. |
Examples
The following example shows how to export apng APNG file format from other non-animated multi-page format.
[C#]
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using (Image image = Image.Load("img4.tif")) {
// Setting up the default frame duration
image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 ms
image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 ms
}
The following example shows how to export to APNG file format.
[C#]
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using (Image image = Image.Load("Animation1.webp")) {
// Export to APNG animation with unlimited animation cycles as default
image.Save("Animation1.webp.png", new ApngOptions());
// Setting up animation cycles
image.Save("Animation2.webp.png", new ApngOptions() { NumPlays = 5 }); // 5 cycles
}
The following example shows how to create APNG image from another raster single-page image.
[C#]
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.FileFormats.Apng;
const int AnimationDuration = 1000; // 1 s
const int FrameDuration = 70; // 70 ms
using (RasterImage sourceImage = (RasterImage)Image.Load("not_animated.png"))
{
ApngOptions createOptions = new ApngOptions
{
Source = new FileCreateSource("raster_animation.png", false),
DefaultFrameTime = (uint)FrameDuration,
ColorType = PngColorType.TruecolorWithAlpha,
};
using (ApngImage apngImage = (ApngImage)Image.Create(
createOptions,
sourceImage.Width,
sourceImage.Height))
{
// It is possible to set image default frame time there: apngImage.DefaultFrameTime = (uint)FrameDuration;
int numOfFrames = AnimationDuration / FrameDuration;
int numOfFrames2 = numOfFrames / 2;
// Cleaning because the image contains one frame by default
apngImage.RemoveAllFrames();
// add first frame
apngImage.AddFrame(sourceImage);
// add intermediate frames
for (int frameIndex = 1; frameIndex < numOfFrames - 1; ++frameIndex)
{
apngImage.AddFrame(sourceImage);
ApngFrame lastFrame = (ApngFrame)apngImage.Pages[apngImage.PageCount - 1];
float gamma = frameIndex >= numOfFrames2 ? numOfFrames - frameIndex - 1 : frameIndex;
lastFrame.AdjustGamma(gamma);
}
// add last frame
apngImage.AddFrame(sourceImage);
apngImage.Save();
}
}
See Also
- class PngOptions
- namespace Aspose.Imaging.ImageOptions
- assembly Aspose.Imaging