Class ApngImage
Il nome: Aspose.Imaging.FileFormats.Apng Assemblea: Aspose.Imaging.dll (25.4.0)
L’API per il file di immagine animato PNG (Animated Portable Network Graphics)Il formato è una soluzione versatile per gli sviluppatori che cercano di integrarecontenuti animati nelle loro applicazioni.Questa API offre un’ampiaControllo delle impostazioni del frame, consentendo agli utenti di definire il frame-specificparametri, tra cui la durata del loop e le impostazioni del file PNG.strumento ricco di funzionalità, è possibile gestire e ottimizzare senza sforzo la visualizzazionedelle immagini APNG, import e esportazione di immagini, migliorando la dinamica eAspetti interattivi delle tue applicazioni.
[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 , IObjectWithBounds , IRasterImageArgb32PixelLoader , IRasterImageRawDataLoader , IHasXmpData , IHasMetadata , IMultipageImageExt , IMultipageImage
I membri ereditari
RasterCachedMultipageImage.AdjustBrightness(int) , RasterCachedMultipageImage.AdjustContrast(float) , RasterCachedMultipageImage.AdjustGamma(float, float, float) , RasterCachedMultipageImage.AdjustGamma(float) , RasterCachedMultipageImage.Blend(Point, RasterImage, Rectangle, byte) , RasterCachedMultipageImage.BinarizeFixed(byte) , RasterCachedMultipageImage.BinarizeBradley(double, int) , RasterCachedMultipageImage.BinarizeBradley(double) , RasterCachedMultipageImage.BinarizeOtsu() , RasterCachedMultipageImage.Crop(Rectangle) , RasterCachedMultipageImage.Crop(int, int, int, int) , RasterCachedMultipageImage.Dither(DitheringMethod, int, IColorPalette) , RasterCachedMultipageImage.Grayscale() , RasterCachedMultipageImage.NormalizeHistogram() , RasterCachedMultipageImage.Rotate(float, bool, Color) , RasterCachedMultipageImage.RotateFlip(RotateFlipType) , RasterCachedMultipageImage.RotateFlipAll(RotateFlipType) , RasterCachedMultipageImage.Resize(int, int, ResizeType) , RasterCachedMultipageImage.Resize(int, int, ImageResizeSettings) , RasterCachedMultipageImage.ResizeWidthProportionally(int, ResizeType) , RasterCachedMultipageImage.ResizeHeightProportionally(int, ResizeType) , RasterCachedMultipageImage.ReplaceColor(int, byte, int) , RasterCachedMultipageImage.ReplaceNonTransparentColors(int) , RasterCachedMultipageImage.Filter(Rectangle, FilterOptionsBase) , RasterCachedMultipageImage.NormalizeAngle(bool, Color) , RasterCachedMultipageImage.CacheData() , RasterCachedMultipageImage.GetSerializedStream(ImageOptionsBase, Rectangle, out int) , RasterCachedMultipageImage.Height , RasterCachedMultipageImage.Width , RasterCachedMultipageImage.BitsPerPixel , RasterCachedMultipageImage.IsCached , RasterCachedMultipageImage.PageCount , RasterCachedMultipageImage.Pages , RasterCachedMultipageImage.HasAlpha , RasterCachedMultipageImage.HasTransparentColor , RasterCachedMultipageImage.ImageOpacity , RasterCachedMultipageImage.BackgroundColor , RasterCachedMultipageImage.XmpData , RasterCachedMultipageImage.PageExportingAction , RasterCachedImage.CacheData() , RasterCachedImage.Blend(Point, RasterImage, Rectangle, byte) , RasterCachedImage.Resize(int, int, ResizeType) , RasterCachedImage.Resize(int, int, ImageResizeSettings) , RasterCachedImage.RotateFlip(RotateFlipType) , RasterCachedImage.Rotate(float, bool, Color) , RasterCachedImage.Crop(Rectangle) , RasterCachedImage.Dither(DitheringMethod, int, IColorPalette) , RasterCachedImage.Grayscale() , RasterCachedImage.NormalizeHistogram() , RasterCachedImage.BinarizeFixed(byte) , RasterCachedImage.BinarizeOtsu() , RasterCachedImage.BinarizeBradley(double, int) , RasterCachedImage.BinarizeBradley(double) , RasterCachedImage.AdjustBrightness(int) , RasterCachedImage.AdjustContrast(float) , RasterCachedImage.AdjustGamma(float, float, float) , RasterCachedImage.AdjustGamma(float) , RasterCachedImage.IsCached , RasterImage.RemoveMetadata() , RasterImage.Save(Stream, ImageOptionsBase, Rectangle) , RasterImage.GetModifyDate(bool) , RasterImage.Dither(DitheringMethod, int) , RasterImage.Dither(DitheringMethod, int, IColorPalette) , RasterImage.GetDefaultPixels(Rectangle, IPartialArgb32PixelLoader) , RasterImage.GetDefaultRawData(Rectangle, IPartialRawDataLoader, RawDataSettings) , RasterImage.GetDefaultArgb32Pixels(Rectangle) , RasterImage.GetDefaultRawData(Rectangle, RawDataSettings) , RasterImage.GetArgb32Pixel(int, int) , RasterImage.GetPixel(int, int) , RasterImage.SetArgb32Pixel(int, int, int) , RasterImage.SetPixel(int, int, Color) , RasterImage.ReadScanLine(int) , RasterImage.ReadArgb32ScanLine(int) , RasterImage.WriteScanLine(int, Color[]) , RasterImage.WriteArgb32ScanLine(int, int[]) , RasterImage.LoadPartialArgb32Pixels(Rectangle, IPartialArgb32PixelLoader) , RasterImage.LoadPartialPixels(Rectangle, IPartialPixelLoader) , RasterImage.LoadArgb32Pixels(Rectangle) , RasterImage.LoadArgb64Pixels(Rectangle) , RasterImage.LoadPartialArgb64Pixels(Rectangle, IPartialArgb64PixelLoader) , RasterImage.LoadPixels(Rectangle) , RasterImage.LoadCmykPixels(Rectangle) , RasterImage.LoadCmyk32Pixels(Rectangle) , RasterImage.LoadRawData(Rectangle, RawDataSettings, IPartialRawDataLoader) , RasterImage.LoadRawData(Rectangle, Rectangle, RawDataSettings, IPartialRawDataLoader) , RasterImage.SaveRawData(byte[], int, Rectangle, RawDataSettings) , RasterImage.SaveArgb32Pixels(Rectangle, int[]) , RasterImage.SavePixels(Rectangle, Color[]) , RasterImage.SaveCmykPixels(Rectangle, CmykColor[]) , RasterImage.SaveCmyk32Pixels(Rectangle, int[]) , RasterImage.SetResolution(double, double) , RasterImage.SetPalette(IColorPalette, bool) , RasterImage.Resize(int, int, ImageResizeSettings) , RasterImage.Rotate(float, bool, Color) , RasterImage.Rotate(float) , RasterImage.BinarizeFixed(byte) , RasterImage.BinarizeOtsu() , RasterImage.BinarizeBradley(double) , RasterImage.BinarizeBradley(double, int) , RasterImage.Blend(Point, RasterImage, Rectangle, byte) , RasterImage.Blend(Point, RasterImage, byte) , RasterImage.Grayscale() , RasterImage.NormalizeHistogram() , RasterImage.AdjustBrightness(int) , RasterImage.AdjustContrast(float) , RasterImage.AdjustGamma(float, float, float) , RasterImage.AdjustGamma(float) , RasterImage.GetSkewAngle() , RasterImage.NormalizeAngle() , RasterImage.NormalizeAngle(bool, Color) , RasterImage.Filter(Rectangle, FilterOptionsBase) , RasterImage.ReplaceColor(Color, byte, Color) , RasterImage.ReplaceColor(int, byte, int) , RasterImage.ReplaceNonTransparentColors(Color) , RasterImage.ReplaceNonTransparentColors(int) , RasterImage.ToBitmap() , RasterImage.PremultiplyComponents , RasterImage.UseRawData , RasterImage.UpdateXmpData , RasterImage.XmpData , RasterImage.RawIndexedColorConverter , RasterImage.RawCustomColorConverter , RasterImage.RawFallbackIndex , RasterImage.RawDataSettings , RasterImage.UsePalette , RasterImage.RawDataFormat , RasterImage.RawLineSize , RasterImage.IsRawDataAvailable , RasterImage.HorizontalResolution , RasterImage.VerticalResolution , RasterImage.HasTransparentColor , RasterImage.HasAlpha , RasterImage.TransparentColor , RasterImage.ImageOpacity , Image.CanLoad(string) , Image.CanLoad(string, LoadOptions) , Image.CanLoad(Stream) , Image.CanLoad(Stream, LoadOptions) , Image.Create(ImageOptionsBase, int, int) , Image.Create(Image[]) , Image.Create(MultipageCreateOptions) , Image.Create(string[], bool) , Image.Create(string[]) , Image.Create(Image[], bool) , Image.GetFileFormat(string) , Image.GetFileFormat(Stream) , Image.GetFittingRectangle(Rectangle, int, int) , Image.GetFittingRectangle(Rectangle, int[], int, int) , Image.Load(string, LoadOptions) , Image.Load(string) , Image.Load(Stream, LoadOptions) , Image.Load(Stream) , Image.GetProportionalWidth(int, int, int) , Image.GetProportionalHeight(int, int, int) , Image.RemoveMetadata() , Image.CanSave(ImageOptionsBase) , Image.Resize(int, int) , Image.Resize(int, int, ResizeType) , Image.Resize(int, int, ImageResizeSettings) , Image.GetDefaultOptions(object[]) , Image.GetOriginalOptions() , Image.ResizeWidthProportionally(int) , Image.ResizeHeightProportionally(int) , Image.ResizeWidthProportionally(int, ResizeType) , Image.ResizeHeightProportionally(int, ResizeType) , Image.ResizeWidthProportionally(int, ImageResizeSettings) , Image.ResizeHeightProportionally(int, ImageResizeSettings) , Image.RotateFlip(RotateFlipType) , Image.Rotate(float) , Image.Crop(Rectangle) , Image.Crop(int, int, int, int) , Image.Save() , Image.Save(string) , Image.Save(string, ImageOptionsBase) , Image.Save(string, ImageOptionsBase, Rectangle) , Image.Save(Stream, ImageOptionsBase) , Image.Save(Stream, ImageOptionsBase, Rectangle) , Image.GetSerializedStream(ImageOptionsBase, Rectangle, out int) , Image.SetPalette(IColorPalette, bool) , Image.BitsPerPixel , Image.Bounds , Image.Container , Image.Height , Image.Palette , Image.UsePalette , Image.Size , Image.Width , Image.InterruptMonitor , Image.BufferSizeHint , Image.AutoAdjustPalette , Image.HasBackgroundColor , Image.FileFormat , Image.BackgroundColor , DataStreamSupporter.CacheData() , DataStreamSupporter.Save() , DataStreamSupporter.Save(Stream) , DataStreamSupporter.Save(string) , DataStreamSupporter.Save(string, bool) , DataStreamSupporter.DataStreamContainer , DataStreamSupporter.IsCached , DisposableObject.Dispose() , DisposableObject.Disposed , object.GetType() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Examples
L’esempio seguente mostra come esportare il formato di file APNG apng da altri formati multi-pagine non animati.
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
}
L’esempio seguente mostra come esportare al formato di file 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
}
L’esempio seguente mostra come creare l’immagine APNG da un’altra immagine single-page del 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(ApngOptions, int e int)
Inizia a lavorare con la classe Aspose.Imaging.FileFormats.Apng. ApngImage iniziandouna nuova instanza senza sforzo. perfetto per gli sviluppatori che cercano di iniziareUtilizzare gli oggetti ApngImage in modo rapido ed efficiente nei loro progetti.
public ApngImage(ApngOptions options, int width, int height)
Parameters
options
ApngOptions
Le opzioni .
width
int
La larghezza .
height
int
La altezza .
Properties
DefaultFrameTime
Facile adattare la durata del quadro predefinito per creare nuovi frame conQuesta proprietà flessibile. perfetto per gli sviluppatori che cercano di personalizzare il timing quadroEfficiente nelle loro animazioni.
public uint DefaultFrameTime { get; set; }
Valore di proprietà
Examples
L’esempio seguente mostra come creare l’immagine APNG da un’altra immagine single-page del 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
Accedere rapidamente alle informazioni sul formato del file con questa conveniente proprietà.Ideale per gli sviluppatori che hanno bisogno di recuperare i dettagli sul formatodei loro file Apng facilmente.
public override FileFormat FileFormat { get; }
Valore di proprietà
Interlaced
Determinare rapidamente se questo Aspose.Imaging.FileFormats.Png. PngImage oggetto è interlessocon questa conveniente proprietà. ideale per gli sviluppatori che hanno bisogno di controllarel’interlink status delle immagini PNG facilmente.
public bool Interlaced { get; }
Valore di proprietà
NumPlays
Controlla senza sforzo il numero di volte la tua animazione scorre con questoProprietà versatile. perfetto per gli sviluppatori che cercano un controllo accuratocomportamenti di animazione, con sostegno per l’infinito looping in caso diIl valore è pari a 0.
public int NumPlays { get; set; }
Valore di proprietà
PageCount
Retrate il numero totale di pagine nel file immagine senza sforzo con questa proprietà.Ideale per gli sviluppatori che hanno bisogno di accesso rapido alle informazioni di conteggio della pagina.
public override int PageCount { get; }
Valore di proprietà
Pages
Accedi facilmente alle pagine della tua immagine con questa proprietà conveniente.Perfetto per gli sviluppatori che cercano un accesso rapido e facile a pagine individuali per la manipolazione.
public override Image[] Pages { get; }
Valore di proprietà
Image [ ]
XmpData
Gestire senza sforzo i metadati XMP associati ai tuoi file utilizzando questoProprietà versatile. perfetto per gli sviluppatori che cercano di accedere o aggiornareMetadata con facilità.
public override XmpPacketWrapper XmpData { get; set; }
Valore di proprietà
Methods
AddFrame()
Aggiungi facilmente un nuovo quadro alla fine della tua collezione di frame con questometodo semplice. ideale per gli sviluppatori che cercano di espandere il loroCollezione dinamica per le animazioni con immagini multi-frame.Un nuovo quadro verrà creato in base alla dimensione dell’immagine attuale.
public ApngFrame AddFrame()
Returns
Il nuovo frame APNG creato.
AddFrame(RasterImage)
Improvvisamente espandere la vostra collezione di frame aggiungendo un nuovo frame alla finecon questo metodo intuitivo. perfetto per gli sviluppatori che cercano di migliorare il loroAnimazioni di immagini multi-frame in modo dinamico.I contenuti del nuovo quadro saranno riempiti dall’immagine specificata.
public void AddFrame(RasterImage frameImage)
Parameters
frameImage
RasterImage
Il quadro immagine.
Examples
L’esempio seguente mostra come creare l’immagine APNG da un’altra immagine single-page del 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
Il frameImage è zero.
AddFrame(Il rossetto, uint)
Espandere la vostra collezione di frame senza sforzo appendendo un nuovo frame allacon questo metodo intuitivo. ideale per gli sviluppatori che cercano di arricchire il loroAnimazione di immagini multi-frame.I contenuti del nuovo quadro saranno riempiti dall’immagine specificata.
public void AddFrame(RasterImage frameImage, uint frameTime)
Parameters
frameImage
RasterImage
Il quadro immagine.
frameTime
uint
La durata del quadro, in millisecondi.
Exceptions
Il frameImage è zero.
AddPage(RasterImage)
Aggiungi una nuova pagina all’immagine senza sforzo con questo metodo intuitivo.Perfetto per gli sviluppatori che cercano di espandere dinamicamente il contenuto dei loro file di immagine.
public void AddPage(RasterImage page)
Parameters
page
RasterImage
La pagina da aggiungere.
Exceptions
page’ is null.
AdjustBrightness(int)
Facilmente adattare la luminosità dell’immagine con questo metodo intuitivo, utilizzando il parametro di luminanza specificato. ideale per gli sviluppatori che cercano di migliorare o diminuire dinamicamente l’umidità complessiva delle immagini.
public override void AdjustBrightness(int brightness)
Parameters
brightness
int
Il valore della luminosità.
AdjustContrast(flotta)
Migliora il contrasto del Aspose.Imaging.Immagineper rendere i dettagli esposti con questo metodo intuitivo. ideale per gli sviluppatoricercare di migliorare la chiarezza visiva e l’impatto delle loro immagini in modo dinamico.
public override void AdjustContrast(float contrast)
Parameters
contrast
float
Valore di contrasto (in gamma [-100; 100])
AdjustGamma(flotta)
Applicare la correzione gamma all’immagine utilizzando un coefficiente fluttuantecon questo metodo intuitivo. ideale per gli sviluppatori che cercano un controllo accurato del colorenelle loro immagini.
public override void AdjustGamma(float gamma)
Parameters
gamma
float
Gamma per il coefficiente dei canali rosso, verde e blu
AdjustGamma(Flotta, flotta e flotta)
Eseguire la correzione gamma sull’immagine separatamente per i canali rosso, verde e bluutilizzando coefficienti individuali con questo metodo intuitivo. ideale per gli sviluppatori che cercanomigliorare l’equilibrio colorato e la qualità visiva delle loro immagini.
public override void AdjustGamma(float gammaRed, float gammaGreen, float gammaBlue)
Parameters
gammaRed
float
Gamma per il coefficiente del canale rosso
gammaGreen
float
Gamma per il coefficiente del canale verde
gammaBlue
float
Gamma per il coefficiente del canale blu
BinarizeBradley(Il doppio int)
Binarizzazione di un’immagine utilizzando l’algoritmo di soglia adattabile di Bradley utilizzando il soglia immagine integrale
public override void BinarizeBradley(double brightnessDifference, int windowSize)
Parameters
brightnessDifference
double
La differenza di luminosità tra il pixel e la media di una finestra s x s di pixellicentrato intorno a questo pixel.
windowSize
int
La dimensione della finestra s x s dei pixel centrati intorno a questo pixel
BinarizeFixed(di byte)
Inutilmente binare l’immagine utilizzando un limite predefinito con questoMetodo intuitivo. ideale per gli sviluppatori che cercano di convertire le immagini in forma binaria,semplificandoli per ulteriori elaborazioni o analisi.
public override void BinarizeFixed(byte threshold)
Parameters
threshold
byte
Se il valore grigio corrispondente di un pixel è superiore al limite, un valore di255 sarà assegnato a esso, 0 altrimenti.
BinarizeOtsu()
Eseguire la binarizzazione sull’immagine utilizzando il margine Otsu con questo metodo intuitivo.Ideale per gli sviluppatori che cercano di determinare automaticamente il limite ottimaleConvertire le immagini in forma binaria, migliorando la loro chiarezza e idoneità per ulteriori analisi.
public override void BinarizeOtsu()
Crop(Rectangle)
Improvvisamente coltivare l’immagine per concentrarsi su aree specifiche con questo metodo intuitivo.Perfetto per gli sviluppatori che cercano di rinfinire dinamicamente la composizione delle loro immagini.
public override void Crop(Rectangle rectangle)
Parameters
rectangle
Rectangle
Il rectangolo .
Crop(int, int, int, int)
Coltivare l’immagine mentre si adattano i cambiamenti senza sguardo con questo metodo intuitivo.Ideale per gli sviluppatori che cercano un controllo preciso sul processo di raccoltaper concentrarsi su aree specifiche delle loro immagini Apng.
public override void Crop(int leftShift, int rightShift, int topShift, int bottomShift)
Parameters
leftShift
int
La sinistra cambia.
rightShift
int
Il giusto cambio.
topShift
int
Il top shift.
bottomShift
int
Il basso cambiamento.
Dither(DitheringMethod, int, IColorPalette)
Facilmente applicare gli effetti di distrazione all’immagine corrente con questo metodo intuitivo.Ideale per gli sviluppatori che cercano di aggiungere texture o ridurre il legame dei colori nelle loro immagini.
public override void Dither(DitheringMethod ditheringMethod, int bitsCount, IColorPalette customPalette)
Parameters
ditheringMethod
DitheringMethod
Il metodo di diffusione.
bitsCount
int
I bit finali contano per il dithering.
customPalette
IColorPalette
La paletta personalizzata per il dithering.
Filter(Rettangolo, FilterOptionsBase)
Applicare senza sforzo i filtri al rettangolo specificato dell’immagine con questoMetodo intuitivo. perfetto per gli sviluppatori che cercano di migliorare o modificare aree specifiche.
public override void Filter(Rectangle rectangle, FilterOptionsBase options)
Parameters
rectangle
Rectangle
Il rectangolo .
options
FilterOptionsBase
Le opzioni .
GetDefaultOptions(oggetto[])
Retrate le opzioni predefinite senza sforzo con questo metodo semplice.Ideale per gli sviluppatori che cercano un rapido accesso alle impostazioni immagine Apng predefinite.
public override ImageOptionsBase GetDefaultOptions(object[] args)
Parameters
args
object
[ ]
Gli argomenti .
Returns
Opzioni di default
GetModifyDate(di bool)
Ottieni rapidamente la data e l’ora in cui la immagine risorsa è stata modificata per l’ultima voltacon questo metodo user-friendly. ideale per gli sviluppatori che hanno bisogno di tracciare i cambiamentigestire efficacemente le risorse.
public override DateTime GetModifyDate(bool useDefault)
Parameters
useDefault
bool
se impostato a ’true’ utilizza le informazioni di FileInfo come valore predefinito.
Returns
La data e l’ora dell’immagine risorsa è stata modificata per l’ultima volta.
GetOriginalOptions()
Retrieve opzioni basate sulle impostazioni dei file originali senza sforzo con questo metodo intuitivo.Perfetto per gli sviluppatori che cercano di accedere e utilizzare le impostazioni che si alignano con le caratteristichedel file originale.Questo può essere utile per mantenere la profondità del bit e altri parametri dell’immagine originale invariati.Ad esempio, se caricamo un’immagine PNG in bianco e nero con 1 bit per pixel e lo salviamo utilizzando ilAspose.Imaging.DataStreamSupporter.Save(System.String) metodo, l’immagine PNG di uscita con 8 bit per pixel sarà prodotto.Per evitare e salvare l’immagine PNG con 1 bit per pixel, utilizzare questo metodo per ottenere le opzioni di risparmio corrispondenti e passare loroper il metodo Aspose.Imaging.Image.Save(System.String,_W L17.ImagineOptionsBase) come secondo parametro.
public override ImageOptionsBase GetOriginalOptions()
Returns
Le opzioni basate sulle impostazioni del file originale.
GetPagesAsEnumerable()
Ricevi le pagine come numerabili.
protected override IEnumerable<image/> GetPagesAsEnumerable()
Returns
IEnumerable di < Image >
Le proprie pagine come elencabili.
Grayscale()
Trasformare facilmente l’immagine nella sua rappresentazione grayscale con questo metodo intuitivo.Ideale per gli sviluppatori che cercano di convertire le immagini colorate in grayscale, semplificando le loroprocessi di visualizzazione o analisi.
public override void Grayscale()
InsertFrame(int)
Inserisci senza sforzo un nuovo quadro nella tua collezione di frame nella specificacon questo metodo intuitivo. ideale per gli sviluppatori che cercano un controllo accuratoL’organizzazione dei quadri nelle loro animazioni di immagini multi-frame.Un nuovo quadro verrà creato in base alla dimensione dell’immagine attuale.
public ApngFrame InsertFrame(int index)
Parameters
index
int
L’indice è
Returns
Il nuovo frame APNG creato.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
InsertFrame(di RasterImage)
Inserisci un nuovo quadro nella propria collezione di frame all’indice specificato.I contenuti del nuovo quadro saranno riempiti dall’immagine specificata.
public void InsertFrame(int index, RasterImage frameImage)
Parameters
index
int
L’indice è
frameImage
RasterImage
Il quadro immagine.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
Il frameImage è zero.
InsertFrame(di RasterImage, uint)
Inserisci un nuovo quadro nella propria collezione di frame all’indice specificato.I contenuti del nuovo quadro saranno riempiti dall’immagine specificata.
public void InsertFrame(int index, RasterImage frameImage, uint frameTime)
Parameters
index
int
L’indice è
frameImage
RasterImage
Il quadro immagine.
frameTime
uint
La durata del quadro, in millisecondi.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
Il frameImage è zero.
PopFrameAt(int)
Rimuovere e recuperare il frame all’indice specificato dalla vostra collezione di framecon questo metodo intuitivo. perfetto per gli sviluppatori che cercano gestione efficientedei quadri nelle loro animazioni.
public ApngFrame PopFrameAt(int index)
Parameters
index
int
L’indice è
Returns
Il frame APNG rimosso.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ReleaseManagedResources()
Rilascia le risorse gestite. assicurarsi che nessuna risorsa non gestita sia rilasciata qui, poiché potrebbero essere stategià rilasciato.
protected override void ReleaseManagedResources()
RemoveAllFrames()
Rimuovere la vostra collezione di frame rimuovendo tutti i frame con questo metodo intuitivo.Ideale per gli sviluppatori che cercano di ripristinare o rinfrescare le loro animazioni.
public void RemoveAllFrames()
Examples
L’esempio seguente mostra come creare l’immagine APNG da un’altra immagine single-page del 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)
Rimuovere il frame all’indice specificato dalla vostra collezione di frame senza segniPerfetto per gli sviluppatori che cercano una gestione accurata dei framenelle loro immagini multi-frame.Il quadro da cancellare sarà eliminato.
public void RemoveFrameAt(int index)
Parameters
index
int
L’indice è
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ResetDefaultImage()
Rimuovere un’immagine predefinita con questo metodo intuitivo.Ideale per gli sviluppatori che cercano di ripristinare o rimuovere l’immagine predefinita nella loro animazione.Dopo questo, l’immagine predefinita è il primo quadro nella stessa collezione di frame(non può essere cancellato utilizzando questo metodo).
public void ResetDefaultImage()
Resize(int, int, resizeType)
Ristrutturare l’immagine senza sforzo con questo metodo intuitivo. perfetto per gli sviluppatoricercare di adattare dinamicamente le dimensioni delle loro immagini.
public override void Resize(int newWidth, int newHeight, ResizeType resizeType)
Parameters
newWidth
int
La nuova larghezza.
newHeight
int
La nuova altezza.
resizeType
ResizeType
Il tipo di ritorno.
Resize(int, int, immagineResizeSettings)
Ristrutturare l’immagine.
public override void Resize(int newWidth, int newHeight, ImageResizeSettings settings)
Parameters
newWidth
int
La nuova larghezza.
newHeight
int
La nuova altezza.
settings
ImageResizeSettings
Il ripristino delle impostazioni.
ResizeHeightProportionally(Integrazione, ResizeType)
Adattare senza sforzo l’altezza dell’immagine mantenendo le sue proporzionicon questo metodo intuitivo. perfetto per gli sviluppatori che cercano di ripristinare le immaginiin modo dinamico, mantenendo il loro rapporto di aspetto.
public override void ResizeHeightProportionally(int newHeight, ResizeType resizeType)
Parameters
newHeight
int
La nuova altezza.
resizeType
ResizeType
Tipo di ritorno.
ResizeWidthProportionally(Integrazione, ResizeType)
Proporzionalmente ridurre la larghezza dell’immagine senza sforzo con questo metodo intuitivo.Ideale per gli sviluppatori che cercano di mantenere il rapporto aspetto delle loro immagini mentreadeguare le loro dimensioni.
public override void ResizeWidthProportionally(int newWidth, ResizeType resizeType)
Parameters
newWidth
int
La nuova larghezza.
resizeType
ResizeType
Tipo di ritorno.
Rotate(Flotta, Bool, Colore)
Rota l’immagine intorno al suo centro senza sforzo con questo metodo intuitivo.Perfetto per gli sviluppatori che cercano di regolare dinamicamente l’orientamento delle loro immagini.
public override void Rotate(float angle, bool resizeProportionally, Color backgroundColor)
Parameters
angle
float
L’angolo di rotazione in gradi. valori positivi gireranno in orologio.
resizeProportionally
bool
se impostato a ’true’ avrai cambiato la dimensione dell’immagine in base alle proiezioni rettangoli rotate (punti corni) in altri casi che lasciano le dimensioni non toccate e solointerni i contenuti di immagine sono rotati.
backgroundColor
Color
Il colore del background.
RotateFlip(RotateFlipType)
Manipolare senza sforzo il quadro attivo rotando, flipping o entrambicon questo metodo intuitivo. ideale per gli sviluppatori che cercano di personalizzareImmagini di orientamento frame.
public override void RotateFlip(RotateFlipType rotateFlipType)
Parameters
rotateFlipType
RotateFlipType
Il tipo di flip rotato.
SaveData(Stream)
Salva i dati.
protected override void SaveData(Stream stream)
Parameters
stream
Stream
Il flusso per salvare i dati.
SetDefaultImage(RasterImage)
Configurare l’immagine del raster specifica come immagine predefinita dell’animazione correnteperfetto per gli sviluppatori che cercano di personalizzarel’immagine predefinita nelle loro animazioni.
public void SetDefaultImage(RasterImage image)
Parameters
image
RasterImage
La immagine .
Exceptions
L’immagine è zero.
UpdateDimensions(di int, int)
Aggiornare le dimensioni dell’immagine.
protected override void UpdateDimensions(int newWidth, int newHeight)
Parameters
newWidth
int
La nuova larghezza dell’immagine.
newHeight
int
L’altezza della nuova immagine.
UpdateMetadata()
Aggiornare i metadati di immagine.
protected override void UpdateMetadata()