Class ApngImage
Nombre del espacio: Aspose.Imaging.FileFormats.Apng Asamblea: Aspose.Imaging.dll (25.4.0)
El archivo de imagen de PNG (Animated Portable Network Graphics)El formato es una solución versátil para los desarrolladores que buscan integrarcontenido animado en sus aplicaciones. esta API ofrece una extensacontrol sobre las configuraciones del marco, permitiendo a los usuarios definir el marco específicoparámetros, incluida la duración del loop y las configuraciones de archivo PNG.herramienta rica en funciones, puede gestionar y optimizar sin esfuerzo la pantallade las imágenes APNG, las imágenes de importación y exportación, mejorando la dinámica yaspectos interactivos de sus aplicaciones.
[JsonObject(MemberSerialization.OptIn)]
public sealed class ApngImage : RasterCachedMultipageImage, IDisposable, IObjectWithBounds, IRasterImageArgb32PixelLoader, IRasterImageRawDataLoader, IHasXmpData, IHasMetadata, IMultipageImageExt, IMultipageImage
Inheritance
object ← DisposableObject ← DataStreamSupporter ← Image ← RasterImage ← RasterCachedImage ← RasterCachedMultipageImage ← ApngImage
Implements
IDisposable ,y, IObjectWithBounds ,y, IRasterImageArgb32PixelLoader ,y, IRasterImageRawDataLoader ,y, IHasXmpData ,y, IHasMetadata ,y, IMultipageImageExt ,y, IMultipageImage
Miembros heredados
RasterCachedMultipageImage.AdjustBrightness(int) ,y, RasterCachedMultipageImage.AdjustContrast(float) ,y, RasterCachedMultipageImage.AdjustGamma(float, float, float) ,y, RasterCachedMultipageImage.AdjustGamma(float) ,y, RasterCachedMultipageImage.Blend(Point, RasterImage, Rectangle, byte) ,y, RasterCachedMultipageImage.BinarizeFixed(byte) ,y, RasterCachedMultipageImage.BinarizeBradley(double, int) ,y, RasterCachedMultipageImage.BinarizeBradley(double) ,y, RasterCachedMultipageImage.BinarizeOtsu() ,y, RasterCachedMultipageImage.Crop(Rectangle) ,y, RasterCachedMultipageImage.Crop(int, int, int, int) ,y, RasterCachedMultipageImage.Dither(DitheringMethod, int, IColorPalette) ,y, RasterCachedMultipageImage.Grayscale() ,y, RasterCachedMultipageImage.NormalizeHistogram() ,y, RasterCachedMultipageImage.Rotate(float, bool, Color) ,y, RasterCachedMultipageImage.RotateFlip(RotateFlipType) ,y, RasterCachedMultipageImage.RotateFlipAll(RotateFlipType) ,y, RasterCachedMultipageImage.Resize(int, int, ResizeType) ,y, RasterCachedMultipageImage.Resize(int, int, ImageResizeSettings) ,y, RasterCachedMultipageImage.ResizeWidthProportionally(int, ResizeType) ,y, RasterCachedMultipageImage.ResizeHeightProportionally(int, ResizeType) ,y, RasterCachedMultipageImage.ReplaceColor(int, byte, int) ,y, RasterCachedMultipageImage.ReplaceNonTransparentColors(int) ,y, RasterCachedMultipageImage.Filter(Rectangle, FilterOptionsBase) ,y, RasterCachedMultipageImage.NormalizeAngle(bool, Color) ,y, RasterCachedMultipageImage.CacheData() ,y, RasterCachedMultipageImage.GetSerializedStream(ImageOptionsBase, Rectangle, out int) ,y, RasterCachedMultipageImage.Height ,y, RasterCachedMultipageImage.Width ,y, RasterCachedMultipageImage.BitsPerPixel ,y, RasterCachedMultipageImage.IsCached ,y, RasterCachedMultipageImage.PageCount ,y, RasterCachedMultipageImage.Pages ,y, RasterCachedMultipageImage.HasAlpha ,y, RasterCachedMultipageImage.HasTransparentColor ,y, RasterCachedMultipageImage.ImageOpacity ,y, RasterCachedMultipageImage.BackgroundColor ,y, RasterCachedMultipageImage.XmpData ,y, RasterCachedMultipageImage.PageExportingAction ,y, RasterCachedImage.CacheData() ,y, RasterCachedImage.Blend(Point, RasterImage, Rectangle, byte) ,y, RasterCachedImage.Resize(int, int, ResizeType) ,y, RasterCachedImage.Resize(int, int, ImageResizeSettings) ,y, RasterCachedImage.RotateFlip(RotateFlipType) ,y, RasterCachedImage.Rotate(float, bool, Color) ,y, RasterCachedImage.Crop(Rectangle) ,y, RasterCachedImage.Dither(DitheringMethod, int, IColorPalette) ,y, RasterCachedImage.Grayscale() ,y, RasterCachedImage.NormalizeHistogram() ,y, RasterCachedImage.BinarizeFixed(byte) ,y, RasterCachedImage.BinarizeOtsu() ,y, RasterCachedImage.BinarizeBradley(double, int) ,y, RasterCachedImage.BinarizeBradley(double) ,y, RasterCachedImage.AdjustBrightness(int) ,y, RasterCachedImage.AdjustContrast(float) ,y, RasterCachedImage.AdjustGamma(float, float, float) ,y, RasterCachedImage.AdjustGamma(float) ,y, RasterCachedImage.IsCached ,y, RasterImage.RemoveMetadata() ,y, RasterImage.Save(Stream, ImageOptionsBase, Rectangle) ,y, RasterImage.GetModifyDate(bool) ,y, RasterImage.Dither(DitheringMethod, int) ,y, RasterImage.Dither(DitheringMethod, int, IColorPalette) ,y, RasterImage.GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader) ,y, RasterImage.GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings) ,y, RasterImage.GetDefaultArgb32Pixels(Rectangle) ,y, RasterImage.GetDefaultRawData(Rectangle, RawDataSettings) ,y, RasterImage.GetArgb32Pixel(int, int) ,y, RasterImage.GetPixel(int, int) ,y, RasterImage.SetArgb32Pixel(int, int, int) ,y, RasterImage.SetPixel(int, int, Color) ,y, RasterImage.ReadScanLine(int) ,y, RasterImage.ReadArgb32ScanLine(int) ,y, RasterImage.WriteScanLine(int, Color[]) ,y, RasterImage.WriteArgb32ScanLine(int, int[]) ,y, RasterImage.LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader) ,y, RasterImage.LoadPartialPixels(Rectangle, IPartialPixelLoader) ,y, RasterImage.LoadArgb32Pixels(Rectangle) ,y, RasterImage.LoadArgb64Pixels(Rectangle) ,y, RasterImage.LoadPartialArgb64Pixels(Rectangle, IPartialArgb64PixelLoader) ,y, RasterImage.LoadPixels(Rectangle) ,y, RasterImage.LoadCmykPixels(Rectangle) ,y, RasterImage.LoadCmyk32Pixels(Rectangle) ,y, RasterImage.LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader) ,y, RasterImage.LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader) ,y, RasterImage.SaveRawData(byte[], int, Rectangle, RawDataSettings) ,y, RasterImage.SaveArgb32Pixels(Rectangle, int[]) ,y, RasterImage.SavePixels(Rectangle, Color[]) ,y, RasterImage.SaveCmykPixels(Rectangle, CmykColor[]) ,y, RasterImage.SaveCmyk32Pixels(Rectangle, int[]) ,y, RasterImage.SetResolution(double, double) ,y, RasterImage.SetPalette(IColorPalette, bool) ,y, RasterImage.Resize(int, int, ImageResizeSettings) ,y, RasterImage.Rotate(float, bool, Color) ,y, RasterImage.Rotate(float) ,y, RasterImage.BinarizeFixed(byte) ,y, RasterImage.BinarizeOtsu() ,y, RasterImage.BinarizeBradley(double) ,y, RasterImage.BinarizeBradley(double, int) ,y, RasterImage.Blend(Point, RasterImage, Rectangle, byte) ,y, RasterImage.Blend(Point, RasterImage, byte) ,y, RasterImage.Grayscale() ,y, RasterImage.NormalizeHistogram() ,y, RasterImage.AdjustBrightness(int) ,y, RasterImage.AdjustContrast(float) ,y, RasterImage.AdjustGamma(float, float, float) ,y, RasterImage.AdjustGamma(float) ,y, RasterImage.GetSkewAngle() ,y, RasterImage.NormalizeAngle() ,y, RasterImage.NormalizeAngle(bool, Color) ,y, RasterImage.Filter(Rectangle, FilterOptionsBase) ,y, RasterImage.ReplaceColor(Color, byte, Color) ,y, RasterImage.ReplaceColor(int, byte, int) ,y, RasterImage.ReplaceNonTransparentColors(Color) ,y, RasterImage.ReplaceNonTransparentColors(int) ,y, RasterImage.ToBitmap() ,y, RasterImage.PremultiplyComponents ,y, RasterImage.UseRawData ,y, RasterImage.UpdateXmpData ,y, RasterImage.XmpData ,y, RasterImage.RawIndexedColorConverter ,y, RasterImage.RawCustomColorConverter ,y, RasterImage.RawFallbackIndex ,y, RasterImage.RawDataSettings ,y, RasterImage.UsePalette ,y, RasterImage.RawDataFormat ,y, RasterImage.RawLineSize ,y, RasterImage.IsRawDataAvailable ,y, RasterImage.HorizontalResolution ,y, RasterImage.VerticalResolution ,y, RasterImage.HasTransparentColor ,y, RasterImage.HasAlpha ,y, RasterImage.TransparentColor ,y, RasterImage.ImageOpacity ,y, Image.CanLoad(string) ,y, Image.CanLoad(string, LoadOptions) ,y, Image.CanLoad(Stream) ,y, Image.CanLoad(Stream, LoadOptions) ,y, Image.Create(ImageOptionsBase, int, int) ,y, Image.Create(Image[]) ,y, Image.Create(MultipageCreateOptions) ,y, Image.Create(string[], bool) ,y, Image.Create(string[]) ,y, Image.Create(Image[], bool) ,y, Image.GetFileFormat(string) ,y, Image.GetFileFormat(Stream) ,y, Image.GetFittingRectangle(Rectangle, int, int) ,y, Image.GetFittingRectangle(Rectangle, int[], int, int) ,y, Image.Load(string, LoadOptions) ,y, Image.Load(string) ,y, Image.Load(Stream, LoadOptions) ,y, Image.Load(Stream) ,y, Image.GetProportionalWidth(int, int, int) ,y, Image.GetProportionalHeight(int, int, int) ,y, Image.RemoveMetadata() ,y, Image.CanSave(ImageOptionsBase) ,y, Image.Resize(int, int) ,y, Image.Resize(int, int, ResizeType) ,y, Image.Resize(int, int, ImageResizeSettings) ,y, Image.GetDefaultOptions(object[]) ,y, Image.GetOriginalOptions() ,y, Image.ResizeWidthProportionally(int) ,y, Image.ResizeHeightProportionally(int) ,y, Image.ResizeWidthProportionally(int, ResizeType) ,y, Image.ResizeHeightProportionally(int, ResizeType) ,y, Image.ResizeWidthProportionally(int, ImageResizeSettings) ,y, Image.ResizeHeightProportionally(int, ImageResizeSettings) ,y, Image.RotateFlip(RotateFlipType) ,y, Image.Rotate(float) ,y, Image.Crop(Rectangle) ,y, Image.Crop(int, int, int, int) ,y, Image.Save() ,y, Image.Save(string) ,y, Image.Save(string, ImageOptionsBase) ,y, Image.Save(string, ImageOptionsBase, Rectangle) ,y, Image.Save(Stream, ImageOptionsBase) ,y, Image.Save(Stream, ImageOptionsBase, Rectangle) ,y, Image.GetSerializedStream(ImageOptionsBase, Rectangle, out int) ,y, Image.SetPalette(IColorPalette, bool) ,y, Image.BitsPerPixel ,y, Image.Bounds ,y, Image.Container ,y, Image.Height ,y, Image.Palette ,y, Image.UsePalette ,y, Image.Size ,y, Image.Width ,y, Image.InterruptMonitor ,y, Image.BufferSizeHint ,y, Image.AutoAdjustPalette ,y, Image.HasBackgroundColor ,y, Image.FileFormat ,y, Image.BackgroundColor ,y, DataStreamSupporter.CacheData() ,y, DataStreamSupporter.Save() ,y, DataStreamSupporter.Save(Stream) ,y, DataStreamSupporter.Save(string) ,y, DataStreamSupporter.Save(string, bool) ,y, DataStreamSupporter.DataStreamContainer ,y, DataStreamSupporter.IsCached ,y, DisposableObject.Dispose() ,y, DisposableObject.Disposed ,y, object.GetType() ,y, object.ToString() ,y, object.Equals(object?) ,y, object.Equals(object?, object?) ,y, object.ReferenceEquals(object?, object?) ,y, object.GetHashCode()
Examples
El siguiente ejemplo muestra cómo exportar el formato de archivo APNG de otros formatos multipáginas no animados.
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
}
El siguiente ejemplo muestra cómo exportar al formato de archivo APNG.
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
}
El siguiente ejemplo muestra cómo crear una imagen APNG de otra imagen de una página única de raster.
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();
}
}
Constructors
ApngImage(Opciones, int, int)
Comience a trabajar con la clase Aspose.Imaging.FileFormats.Apng.ApngImage iniciandouna nueva instancia sin esfuerzo. perfecto para los desarrolladores que buscan comenzarutilizar Objetos ApngImage de forma rápida y eficiente en sus proyectos.
public ApngImage(ApngOptions options, int width, int height)
Parameters
options
ApngOptions
Las opciones.
width
int
de la amplitud.
height
int
La altura.
Properties
DefaultFrameTime
Ajuste fácilmente la duración del cuadro por defecto para crear nuevos cuadros conEsta propiedad flexible. Perfecto para los desarrolladores que buscan personalizar el tiempo del marcoeficientemente en sus animaciones.
public uint DefaultFrameTime { get; set; }
Valor de la propiedad
Examples
El siguiente ejemplo muestra cómo crear una imagen APNG de otra imagen de una página única de raster.
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();
}
}
FileFormat
Acceso rápido a la información sobre el formato de archivo con esta propiedad conveniente.Ideal para los desarrolladores que necesitan obtener detalles sobre el formatode sus archivos APNG fácilmente.
public override FileFormat FileFormat { get; }
Valor de la propiedad
Interlaced
Determina rápidamente si este objeto Aspose.Imaging.FileFormats.Png.PngImage está interligadocon esta propiedad conveniente. ideal para los desarrolladores que necesitan comprobarel estado de interconexión de las imágenes PNG fácilmente.
public bool Interlaced { get; }
Valor de la propiedad
NumPlays
Controlar sin esfuerzo el número de veces que su animación corre con estepropiedad versátil. Perfecto para los desarrolladores que buscan control preciso sobrecomportamiento de animación, con soporte para la inclinación infinita en el caso de laEl valor es igual a 0.
public int NumPlays { get; set; }
Valor de la propiedad
PageCount
Retirar el número total de páginas en su archivo de imagen sin esfuerzo con esta propiedad.Ideal para los desarrolladores que necesitan acceso rápido a la información de cuenta de página.
public override int PageCount { get; }
Valor de la propiedad
Pages
Acceso sin esfuerzo a las páginas de su imagen con esta propiedad conveniente.Perfecto para los desarrolladores que buscan acceso rápido y fácil a páginas individuales para manipulación.
public override Image[] Pages { get; }
Valor de la propiedad
Image [][]
XmpData
Gestionar fácilmente los metadatos XMP asociados con sus archivos utilizando estepropiedad versátil. Perfecto para los desarrolladores que buscan acceder o actualizarInformación de metadatos con facilidad.
public override XmpPacketWrapper XmpData { get; set; }
Valor de la propiedad
Methods
AddFrame()
Añadir fácilmente un nuevo marco al final de su colección de marco con estemétodo sencillo. ideal para los desarrolladores que buscan expandir suColección de cuadros dinámica para animaciones con imágenes multi-frame.Se creará un nuevo marco según el tamaño de la imagen actual.
public ApngFrame AddFrame()
Returns
El nuevo marco APNG creado.
AddFrame(RasterImage)
Desafortunadamente expandir su colección de marco añadiendo un nuevo marco al finalcon este método intuitivo. perfecto para los desarrolladores que buscan mejorar suAnimaciones de imágenes multi-frame dinámicas.Los contenidos del nuevo marco se llenarán de la imagen especificada.
public void AddFrame(RasterImage frameImage)
Parameters
frameImage
RasterImage
La imagen del marco.
Examples
El siguiente ejemplo muestra cómo crear una imagen APNG de otra imagen de una página única de raster.
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();
}
}
Exceptions
El frameImage es nulo.
AddFrame(Cortesía, uint)
Expandir su colección de cuadros sin sentido al añadir un nuevo cuadro a lacon este método intuitivo. ideal para los desarrolladores que buscan enriquecer suAnimación de imágenes multi-frame.Los contenidos del nuevo marco se llenarán de la imagen especificada.
public void AddFrame(RasterImage frameImage, uint frameTime)
Parameters
frameImage
RasterImage
La imagen del marco.
frameTime
uint
Duración del marco, en milisegundos.
Exceptions
El frameImage es nulo.
AddPage(RasterImage)
Añadir una nueva página a la imagen sin esfuerzo con este método intuitivo.Perfecto para los desarrolladores que buscan expandir dinámicamente el contenido de sus archivos de imagen.
public void AddPage(RasterImage page)
Parameters
page
RasterImage
La página para añadir.
Exceptions
page’ is null.
AdjustBrightness(Int)
Agregar fácilmente la luminosidad de la imagen con este método intuitivo, utilizando el parámetro de luminosidad especificado. ideal para los desarrolladores que buscan mejorar o degradar la luminosidad global de las imágenes dinámicamente.
public override void AdjustBrightness(int brightness)
Parameters
brightness
int
Valor de brillo.
AdjustContrast(float)
Mejora el contraste de Aspose.Imaging.Imagepara hacer que los detalles se destaquen con este método intuitivo. ideal para los desarrolladoresBuscando mejorar la claridad visual y el impacto de sus imágenes dinámicamente.
public override void AdjustContrast(float contrast)
Parameters
contrast
float
Valor de contraste (en rango [-100; 100])
AdjustGamma(float)
Aplique la corrección de gama a la imagen utilizando un coeficiente de punto flotanteIdeal para los desarrolladores que buscan un control de color precisoen sus imágenes.
public override void AdjustGamma(float gamma)
Parameters
gamma
float
Gamma para los canales rojo, verde y azul coeficiente
AdjustGamma(float, float y float)
Performan la corrección gamma en la imagen por separado para los canales rojo, verde y azulutilizar coeficientes individuales con este método intuitivo. ideal para los desarrolladores que buscanpara equilibrar el color y mejorar la calidad visual de sus imágenes.
public override void AdjustGamma(float gammaRed, float gammaGreen, float gammaBlue)
Parameters
gammaRed
float
Gamma para el coeficiente de canal rojo
gammaGreen
float
Gamma para el coeficiente de canal verde
gammaBlue
float
Gamma para el coeficiente de canal azul
BinarizeBradley(El doble, int)
Binarización de una imagen utilizando el algoritmo de límite adaptativo de Bradley utilizando el límite de imagen integral
public override void BinarizeBradley(double brightnessDifference, int windowSize)
Parameters
brightnessDifference
double
La diferencia de brillo entre el pixel y la media de una ventana s x s de píxelesen torno a este pixel.
windowSize
int
El tamaño de la ventana s x s de los píxeles centrados alrededor de este píxel
BinarizeFixed(El byte)
Binalizar sin esfuerzo la imagen utilizando un límite predefinido con estemétodo intuitivo. ideal para los desarrolladores que buscan convertir imágenes en forma binaria,Simplificarlos para procesamiento o análisis adicionales.
public override void BinarizeFixed(byte threshold)
Parameters
threshold
byte
Si el valor gris correspondiente de un pixel es mayor que el límite, un valor de255 se asignará a ella, 0 de otra manera.
BinarizeOtsu()
Performan la binarización en la imagen utilizando el límite de Otsu con este método intuitivo.Ideal para los desarrolladores que buscan determinar automáticamente el límite óptimo paraConvertir imágenes en formas binarias, mejorando su claridad y su adecuación para análisis adicionales.
public override void BinarizeOtsu()
Crop(Rectangle)
Crea la imagen sin esfuerzo para centrarse en áreas específicas con este método intuitivo.Perfecto para los desarrolladores que buscan perfeccionar dinámicamente la composición de sus imágenes.
public override void Crop(Rectangle rectangle)
Parameters
rectangle
Rectangle
El rectángulo.
Crop(Int, int, int, int)
Cultivar la imagen al ajustar los cambios sin sentido con este método intuitivo.Ideal para los desarrolladores que buscan un control preciso del proceso de cosechapara centrarse en áreas específicas de sus imágenes de Apng.
public override void Crop(int leftShift, int rightShift, int topShift, int bottomShift)
Parameters
leftShift
int
El cambio de izquierda.
rightShift
int
El cambio correcto.
topShift
int
El cambio superior.
bottomShift
int
El cambio de fondo.
Dither(DitheringMétodo, int, IColorPalette)
Aplicar fácilmente los efectos de difusión a la imagen actual con este método intuitivo.Ideal para los desarrolladores que buscan agregar textura o reducir la bandera de color en sus imágenes.
public override void Dither(DitheringMethod ditheringMethod, int bitsCount, IColorPalette customPalette)
Parameters
ditheringMethod
DitheringMethod
El método de difusión.
bitsCount
int
Los últimos bits cuentan para diitar.
customPalette
IColorPalette
La paleta personalizada para la difusión.
Filter(Rectangle, FilterOptionsBase)
Aplique sin esfuerzo los filtros al rectángulo especificado de la imagen con estePerfecto para los desarrolladores que buscan mejorar o modificar áreas específicas.
public override void Filter(Rectangle rectangle, FilterOptionsBase options)
Parameters
rectangle
Rectangle
El rectángulo.
options
FilterOptionsBase
Las opciones.
GetDefaultOptions(Objeto[])
Retirar las opciones predefinidas sin esfuerzo con este método sencillo.Ideal para los desarrolladores que buscan acceso rápido a las configuraciones de imagen de Apng por defecto.
public override ImageOptionsBase GetDefaultOptions(object[] args)
Parameters
args
object
[][]
Los argumentos.
Returns
Opciones defectuosas
GetModifyDate(BOOL)
Obtenga rápidamente la fecha y el tiempo en que la imagen de la fuente fue modificada por última vezIdeal para los desarrolladores que necesitan rastrear los cambiosy gestionar los recursos de manera efectiva.
public override DateTime GetModifyDate(bool useDefault)
Parameters
useDefault
bool
si se establece a ‘verdad’ utiliza la información de FileInfo como valor predeterminado.
Returns
La fecha y hora de la imagen de la fuente fue modificada por última vez.
GetOriginalOptions()
Retrieve opciones basadas en las configuraciones de archivo originales sin esfuerzo con este método intuitivo.Perfecto para los desarrolladores que buscan acceder y utilizar las configuraciones que alinean con las característicasdel archivo original.Esto puede ser útil para mantener la profundidad del bit y otros parámetros de la imagen original sin cambios.Por ejemplo, si cargamos una imagen de PNG en blanco y negro con 1 bito por píxel y luego la guardamos utilizando elAspose.Imaging.DataStreamSupporter.Save(System.String) método, la imagen PNG de salida con 8 bits por pixel se producir.Para evitarlo y ahorrar la imagen PNG con 1 bits por píxel, utilice este método para obtener las opciones de ahorro correspondientes y pasarlaspara el método Aspose.Imaging.Image.Save(System.String,Aspose.Imaging.ImageOptionsBase) como el segundo parámetro.
public override ImageOptionsBase GetOriginalOptions()
Returns
Las opciones basadas en las configuraciones de archivo original.
GetPagesAsEnumerable()
Obtenga las páginas como numerables.
protected override IEnumerable<image/> GetPagesAsEnumerable()
Returns
IEnumerable &ylt; Image >
Las propias páginas como enumerables.
Grayscale()
Transformar fácilmente la imagen en su representación griega con este método intuitivo.Ideal para los desarrolladores que buscan convertir imágenes de color en gris, simplificando suProcesos de visualización o análisis.
public override void Grayscale()
InsertFrame(Int)
Insertar sin esfuerzo un nuevo marco en su colección de marco en la especificadacon este método intuitivo. ideal para los desarrolladores que buscan control preciso sobreel arreglo de los cuadros en sus animaciones de imágenes multi-frame.Se creará un nuevo marco según el tamaño de la imagen actual.
public ApngFrame InsertFrame(int index)
Parameters
index
int
El índice.
Returns
El nuevo marco APNG creado.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
InsertFrame(Título: RasterImage)
Insertar un nuevo marco en la propia colección de marco en el índice especificado.Los contenidos del nuevo marco se llenarán de la imagen especificada.
public void InsertFrame(int index, RasterImage frameImage)
Parameters
index
int
El índice.
frameImage
RasterImage
La imagen del marco.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
El frameImage es nulo.
InsertFrame(Int, RasterImage y Uint)
Insertar un nuevo marco en la propia colección de marco en el índice especificado.Los contenidos del nuevo marco se llenarán de la imagen especificada.
public void InsertFrame(int index, RasterImage frameImage, uint frameTime)
Parameters
index
int
El índice.
frameImage
RasterImage
La imagen del marco.
frameTime
uint
Duración del marco, en milisegundos.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
El frameImage es nulo.
PopFrameAt(Int)
Remover y recuperar el marco en el índice especificado de su colección de marcoCon este método intuitivo. perfecto para los desarrolladores que buscan una gestión eficientede los cuadros en sus animaciones.
public ApngFrame PopFrameAt(int index)
Parameters
index
int
El índice.
Returns
El marco APNG eliminado.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ReleaseManagedResources()
Emite los recursos gestionados. asegúrese de que no se liberan los recursos no gestionados aquí, ya que pueden haber sidoya liberados.
protected override void ReleaseManagedResources()
RemoveAllFrames()
Limpiar su colección de cuadros eliminando todos los cuadros con este método intuitivo.Ideal para los desarrolladores que buscan reinstalar o refrescar sus animaciones.
public void RemoveAllFrames()
Examples
El siguiente ejemplo muestra cómo crear una imagen APNG de otra imagen de una página única de raster.
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();
}
}
RemoveFrameAt(Int)
Remova el marco en el índice especificado de su colección de marco sin sentidoPerfecto para los desarrolladores que buscan una gestión estricta de los cuadrosen sus imágenes multi-frame.El marco que será eliminado será eliminado.
public void RemoveFrameAt(int index)
Parameters
index
int
El índice.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ResetDefaultImage()
Remova una imagen predefinida con este método intuitivo.Ideal para los desarrolladores que buscan reinstalar o limpiar la imagen predeterminada en su animación.Después de esto, la imagen predeterminada es el primer marco en la propia colección de cadros(no se puede eliminar utilizando este método).
public void ResetDefaultImage()
Resize(int, int, resizeType)
Recuperar la imagen sin sentido con este método intuitivo.Perfecto para los desarrolladoresBuscando ajustar dinámicamente las dimensiones de sus imágenes.
public override void Resize(int newWidth, int newHeight, ResizeType resizeType)
Parameters
newWidth
int
La nueva amplitud.
newHeight
int
La nueva altura.
resizeType
ResizeType
El tipo de residuos.
Resize(int, int, ImageResizeSettings)
Recupera la imagen.
public override void Resize(int newWidth, int newHeight, ImageResizeSettings settings)
Parameters
newWidth
int
La nueva amplitud.
newHeight
int
La nueva altura.
settings
ImageResizeSettings
los ajustes de residuos.
ResizeHeightProportionally(Int, ResizeType)
Ajuste sin esfuerzo la altura de su imagen mientras mantiene sus proporcionescon este método intuitivo. perfecto para los desarrolladores que buscan resignar imágenesde forma dinámica, al mismo tiempo que conservan su relación de aspecto.
public override void ResizeHeightProportionally(int newHeight, ResizeType resizeType)
Parameters
newHeight
int
La nueva altura.
resizeType
ResizeType
Tipo de residuos.
ResizeWidthProportionally(Int, ResizeType)
Recibe proporcionalmente la anchura de la imagen sin esfuerzo con este método intuitivo.Ideal para los desarrolladores que buscan mantener el ratio de aspecto de sus imágenes mientrasajustar sus dimensiones.
public override void ResizeWidthProportionally(int newWidth, ResizeType resizeType)
Parameters
newWidth
int
La nueva amplitud.
resizeType
ResizeType
Tipo de residuos.
Rotate(float, bool, color)
Rotar la imagen alrededor de su centro sin esfuerzo con este método intuitivo.Perfecto para los desarrolladores que buscan ajustar dinámicamente la orientación de sus imágenes.
public override void Rotate(float angle, bool resizeProportionally, Color backgroundColor)
Parameters
angle
float
El ángulo de rotación en grados. valores positivos rotarán de manera horaria.
resizeProportionally
bool
si se establece a ‘verdad’ tendrás su tamaño de imagen cambiado de acuerdo con las proyecciones rectangulares rotadas (puntos de corno) en otros casos que dejan las dimensiones no tocadas y sólo los contenidos de la imagen internal son rotados.
backgroundColor
Color
El color del fondo.
RotateFlip(RotateFlipType)
Manipular sin esfuerzo el marco activo girando, flipping, o amboscon este método intuitivo. ideal para los desarrolladores que buscan personalizarOrientaciones del marco de imagen.
public override void RotateFlip(RotateFlipType rotateFlipType)
Parameters
rotateFlipType
RotateFlipType
El tipo de flip rotado.
SaveData(Stream)
ahorrar los datos.
protected override void SaveData(Stream stream)
Parameters
stream
Stream
El flujo para salvar los datos a.
SetDefaultImage(RasterImage)
Configure la imagen de raster especificada como la imagen por defecto para la animación actualsin esfuerzo con este método. Perfecto para los desarrolladores que buscan personalizarde la imagen en sus animaciones.
public void SetDefaultImage(RasterImage image)
Parameters
image
RasterImage
La imagen.
Exceptions
La imagen es nula.
UpdateDimensions(El int, int)
Actualizar las dimensiones de la imagen.
protected override void UpdateDimensions(int newWidth, int newHeight)
Parameters
newWidth
int
La nueva imagen es amplia.
newHeight
int
El nuevo tamaño de la imagen.
UpdateMetadata()
Actualizar los metadatos de la imagen.
protected override void UpdateMetadata()