Class ApngImage
Nazwa przestrzeń: Aspose.Imaging.FileFormats.Apng Zgromadzenie: Aspose.Imaging.dll (25.4.0)
PNG (Animated Portable Network Graphics) plik obrazuFormat jest wszechstronnym rozwiązaniem dla deweloperów, którzy chcą zintegrowaćzawartość animowana do ich aplikacji. ta API oferuje szerokiekontrolę nad ustawieniami ram, umożliwiając użytkownikom określenie ram specyficznychparametry, w tym długość przepływu i ustawienia plików PNG.narzędzie bogate w funkcje, można bez wysiłku zarządzać i zoptymalizować wyświetlaczobrazów APNG, importowania i eksportu obrazu, zwiększając dynamikę iInteraktywne aspekty Twoich aplikacji.
[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
Dziedziczeni członkowie
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
Poniższy przykład pokazuje, jak wyeksportować format pliku APNG z innego nieanimowanego formatu multi-page.
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
}
Poniższy przykład pokazuje, jak eksportować do formatu pliku 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
}
Poniższy przykład pokazuje, jak utworzyć obraz APNG z innego obrazu pojedynczej strony rastera.
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(Opcje ApngOptions, int i int)
Rozpocznij pracę z klasą Aspose.Imaging.FileFormats.Apng. ApngImage poprzez inicjalizacjęNowy przykład bez wysiłku. doskonały dla deweloperów, którzy chcą rozpocząćkorzystać z obiektów ApngImage szybko i skutecznie w swoich projektach.
public ApngImage(ApngOptions options, int width, int height)
Parameters
options
ApngOptions
i opcji .
width
int
i szerokości .
height
int
i wysokość .
Properties
DefaultFrameTime
Łatwo dostosować czas trwania domyślnej ramki do tworzenia nowych ramto elastyczna właściwość. doskonały dla deweloperów, którzy chcą dostosować czas ramowyEfektywnie w ich animacjach.
public uint DefaultFrameTime { get; set; }
Wartość nieruchomości
Examples
Poniższy przykład pokazuje, jak utworzyć obraz APNG z innego obrazu pojedynczej strony rastera.
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
Szybki dostęp do informacji o formacie pliku z tym wygodnym obiektem.Idealny dla deweloperów, którzy potrzebują szczegółów dotyczących formatuPrzeczytaj o plikach z łatwością.
public override FileFormat FileFormat { get; }
Wartość nieruchomości
Interlaced
Szybko ustalić, czy ten obiekt Aspose.Imaging.FileFormats.Png. PngImage jest połączonyz tym wygodnym obiektem. idealny dla deweloperów, którzy muszą sprawdzićŁatwo łączyć status obrazów PNG.
public bool Interlaced { get; }
Wartość nieruchomości
NumPlays
Bez wysiłku kontrolować liczbę razy Twoja animacja biega z tymwszechstronne właściwości. doskonały dla deweloperów, którzy szukają dokładnej kontroli nadzachowania animacji, z wsparciem dla nieskończonego przepływu w przypadkuWartość równa się 0.
public int NumPlays { get; set; }
Wartość nieruchomości
PageCount
Odzyskuj całkowitą liczbę stron w pliku obrazu bez wysiłku z tą własnością.Idealny dla deweloperów, którzy potrzebują szybkiego dostępu do informacji o liczbie stron.
public override int PageCount { get; }
Wartość nieruchomości
Pages
Bezproblemowy dostęp do stron Twojego obrazu z tym wygodnym obiektem.Idealny dla deweloperów poszukujących szybkiego i łatwego dostępu do poszczególnych stron do manipulacji.
public override Image[] Pages { get; }
Wartość nieruchomości
Image [ ]
XmpData
Szybko zarządzać metadany XMP powiązane z plikami za pomocą tegowszechstronne właściwości. doskonały dla deweloperów, którzy szukają dostępu lub aktualizacjiInformacje o metadatach z łatwością.
public override XmpPacketWrapper XmpData { get; set; }
Wartość nieruchomości
Methods
AddFrame()
Łatwo dodać nowy ramy do końca swojej kolekcji ramowej z tymIdealny dla deweloperów, którzy chcą rozwijać swojeKolekcja ram dynamicznie do animacji z obrazami multi-frame.Nowe ramy zostaną utworzone w zależności od wielkości bieżącego obrazu.
public ApngFrame AddFrame()
Returns
Nowo utworzony ramy APNG.
AddFrame(RasterImage)
Nieprzyjemnie rozszerzyć kolekcję ram poprzez dodanie nowej ramki do końcaz tą intuicyjną metodą. doskonały dla deweloperów, którzy chcą poprawić swojeAnimacje obrazów wielowymiarowych dynamicznie.Zawartość nowego ramy zostanie wypełniona z określonego obrazu.
public void AddFrame(RasterImage frameImage)
Parameters
frameImage
RasterImage
Ramy obrazu.
Examples
Poniższy przykład pokazuje, jak utworzyć obraz APNG z innego obrazu pojedynczej strony rastera.
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
FrameImage jest zero.
AddFrame(Szydło, uint)
Rozszerz swoją kolekcję ramową bezprzewodowo, dodając nową ramę doz tą intuicyjną metodą. idealny dla deweloperów, którzy chcą wzbogacić swojeAnimacja obrazów multi-frame.Zawartość nowego ramy zostanie wypełniona z określonego obrazu.
public void AddFrame(RasterImage frameImage, uint frameTime)
Parameters
frameImage
RasterImage
Ramy obrazu.
frameTime
uint
Czas trwania ramy w milisekundach.
Exceptions
FrameImage jest zero.
AddPage(RasterImage)
Dodaj nową stronę do obrazu bez wysiłku za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą dynamicznie rozszerzyć zawartość swoich plików obrazowych.
public void AddPage(RasterImage page)
Parameters
page
RasterImage
Strona do dodania.
Exceptions
page’ is null.
AdjustBrightness(Int)
Łatwo dostosować jasność " obrazu za pomocą tej intuicyjnej metody, przy użyciu określonego parametru jasności.
public override void AdjustBrightness(int brightness)
Parameters
brightness
int
Wartość jasności .
AdjustContrast(Floty)
Wzmocnienie kontrastu Aspose.Imaging.Imageaby szczegóły wyróżniały się tą intuicyjną metodą. idealny dla deweloperówdążenie do poprawy wizualnej jasności i wpływu ich obrazów dynamicznie.
public override void AdjustContrast(float contrast)
Parameters
contrast
float
Wartość kontrastu (w zakresie [-100; 100])
AdjustGamma(Floty)
Zastosuj korektę gamma do obrazu za pomocą współczynnika pływającego punktuIdealny dla deweloperów poszukujących precyzyjnej kontroli koloróww ich obrazach.
public override void AdjustGamma(float gamma)
Parameters
gamma
float
Gamma dla współczynnika czerwonych, zielonych i niebieskich kanałów
AdjustGamma(float, float i float)
Wykonaj korektę gamma na obrazie oddzielnie dla czerwonych, zielonych i niebieskich kanałówwykorzystanie indywidualnych współczynników za pomocą tej intuicyjnej metody. idealny dla deweloperów, którzy szukająWzmacnia równowagę kolorów i poprawia jakość wizualną ich obrazów.
public override void AdjustGamma(float gammaRed, float gammaGreen, float gammaBlue)
Parameters
gammaRed
float
Gamma dla współczynnika czerwonego kanału
gammaGreen
float
Gamma dla współczynnika zielonego kanału
gammaBlue
float
Gamma dla współczynnika niebieskiego kanału
BinarizeBradley(podwójne, int)
Binaryzacja obrazu za pomocą adaptowego algorytmu granicznego Bradleya za pomocą integralnego granicznego obrazu
public override void BinarizeBradley(double brightnessDifference, int windowSize)
Parameters
brightnessDifference
double
Różnica jasności pomiędzy pikselem a przeciętnym oknem s x s pixelówWystarczy skupić się wokół tego piksela.
windowSize
int
Rozmiar okna s x s pikseli skoncentrowane wokół tego piksela
BinarizeFixed(byte)
Bez wysiłku binaryzuj obraz za pomocą uprzednio zdefiniowanej granicy z tymIdealny dla deweloperów, którzy chcą przekształcić obrazy w formę binarną,Uproszczanie ich do dalszej przetwarzania lub analizy.
public override void BinarizeFixed(byte threshold)
Parameters
threshold
byte
W przypadku, gdy odpowiednia wartość szarowa piksela jest większa niż granica, wartości255 zostanie przydzielone do niego, 0 inaczej.
BinarizeOtsu()
Wykonaj binaryzację obrazu przy użyciu granicy Otsu za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą automatycznie określić optymalny limitKonwertowanie obrazów w kształt binarny, zwiększając ich jasność i dopasowanie do dalszej analizy.
public override void BinarizeOtsu()
Crop(Rectangle)
Bez wysiłku zbierać obraz, aby skupić się na określonych obszarach za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy starają się dynamicznie usprawnić kompozycję swoich obrazów.
public override void Crop(Rectangle rectangle)
Parameters
rectangle
Rectangle
z rektangulą .
Crop(Int, int, int, int, int)
Roślina obrazu podczas dostosowania przesuwów bezprzewodowo za pomocą tej intuicyjnej metody.Idealny dla deweloperów poszukujących dokładnej kontroli nad procesem gromadzeniaKoncentruj się na konkretnych obszarach swoich obrazów Apng.
public override void Crop(int leftShift, int rightShift, int topShift, int bottomShift)
Parameters
leftShift
int
Po lewej zmianie.
rightShift
int
Prawdziwa zmiana
topShift
int
Najwyższa zmiana
bottomShift
int
W dolnej zmianie.
Dither(DitheringMetoda, int, IColorPalette)
Łatwo zastosować efekty dystrybucyjne do bieżącego obrazu za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą dodać teksturę lub zmniejszyć kolorowe powiązania w swoich obrazach.
public override void Dither(DitheringMethod ditheringMethod, int bitsCount, IColorPalette customPalette)
Parameters
ditheringMethod
DitheringMethod
Metoda dystrybucji .
bitsCount
int
Ostatnie bity liczą na dystrybucję.
customPalette
IColorPalette
Przygotowuje się paletę do Dithering.
Filter(Rectangle, FilterOptionsBase)
Nieprzyjemnie zastosować filtry do określonego rektanu obrazu z tymIdealny dla deweloperów, którzy chcą poprawić lub zmienić określone obszary.
public override void Filter(Rectangle rectangle, FilterOptionsBase options)
Parameters
rectangle
Rectangle
z rektangulą .
options
FilterOptionsBase
i opcji .
GetDefaultOptions(Obiekt[])
Odzyskiwanie opcji domyślnych bez wysiłku za pomocą tej prostej metody.Idealny dla deweloperów poszukujących szybkiego dostępu do domyślnych ustawień obrazów Apng.
public override ImageOptionsBase GetDefaultOptions(object[] args)
Parameters
args
object
[ ]
i argumentów .
Returns
Opcje domyślne
GetModifyDate(Bool)
Szybko uzyskać datę i godzinę, kiedy obraz zasobowy został ostatnio zmodyfikowanyIdealny dla deweloperów, którzy muszą śledzić zmianyi skutecznie zarządzać zasobami.
public override DateTime GetModifyDate(bool useDefault)
Parameters
useDefault
bool
Jeśli ustawione na “prawdziwe”, użyj informacji z FileInfo jako wartości domyślnej.
Returns
Data i czas ostatniej modyfikacji obrazu zasobów.
GetOriginalOptions()
Retrieve opcje oparte na oryginalnych ustawieniach plików bez wysiłku za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą uzyskać dostęp i korzystać z ustawień, które odpowiadają cechomz oryginalnego pliku.To może być przydatne, aby utrzymać głębokość i inne parametry oryginalnego obrazu niezmienione.Na przykład, jeśli ładujemy czarno-biały obraz PNG o 1 bit na piksel, a następnie przechowujemy go za pomocąAspose.Imaging.DataStreamSupporter.Save(System.String) metoda, wydajny obraz PNG z 8-bitowym na piksel zostanie wyprodukowany.Aby tego uniknąć i zaoszczędzić obraz PNG z 1 bitem na piksel, użyj tej metody, aby uzyskać odpowiednie opcje oszczędnościowe i przejść jedo metody Aspose.Imaging.Image.Save(System.String,_Wl17.ImageOptionsBase) jako drugiego parametru.
public override ImageOptionsBase GetOriginalOptions()
Returns
Opcje oparte na oryginalnych ustawieniach pliku.
GetPagesAsEnumerable()
Strony są jak wymienione.
protected override IEnumerable<image/> GetPagesAsEnumerable()
Returns
IEnumerable • < Image >
Swoje strony są jak wymienione.
Grayscale()
Łatwo przekształcić obraz w jego grayscale reprezentacji za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą przekształcić kolorowe obrazy w szary skala, uproszczając ichWizualizacja lub procesy analizy.
public override void Grayscale()
InsertFrame(Int)
Bez wysiłku wprowadź nowy ramy do swojej kolekcji ramowej w określonejz tą intuicyjną metodą. idealny dla deweloperów szukających dokładnej kontroli nadukład ram w ich animacjach obrazów multi-frame.Nowe ramy zostaną utworzone w zależności od wielkości bieżącego obrazu.
public ApngFrame InsertFrame(int index)
Parameters
index
int
To jest indeks.
Returns
Nowo utworzony ramy APNG.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
InsertFrame(Tagi: RasterImage)
Wprowadź nowy ramy do własnej kolekcji ramowej na określonym indeksie.Zawartość nowego ramy zostanie wypełniona z określonego obrazu.
public void InsertFrame(int index, RasterImage frameImage)
Parameters
index
int
To jest indeks.
frameImage
RasterImage
Ramy obrazu.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
FrameImage jest zero.
InsertFrame(wskaźnik, RasterImage, uint)
Wprowadź nowy ramy do własnej kolekcji ramowej na określonym indeksie.Zawartość nowego ramy zostanie wypełniona z określonego obrazu.
public void InsertFrame(int index, RasterImage frameImage, uint frameTime)
Parameters
index
int
To jest indeks.
frameImage
RasterImage
Ramy obrazu.
frameTime
uint
Czas trwania ramy w milisekundach.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
FrameImage jest zero.
PopFrameAt(Int)
Usunąć i odzyskać ramy w określonym indeksie z kolekcji ramz tą intuicyjną metodą. doskonały dla deweloperów poszukujących skutecznego zarządzaniaRękawice w ich animacjach.
public ApngFrame PopFrameAt(int index)
Parameters
index
int
To jest indeks.
Returns
Usunięte ramy APNG.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ReleaseManagedResources()
Uwolnij zarządzane zasoby. upewnij się, że nie są one uwalniane tutaj, ponieważ mogą byćJest już uwalniany.
protected override void ReleaseManagedResources()
RemoveAllFrames()
Wyczyścić kolekcję ram poprzez usunięcie wszystkich ram za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą ponownie ustawić lub odświeżyć swoje animacje.
public void RemoveAllFrames()
Examples
Poniższy przykład pokazuje, jak utworzyć obraz APNG z innego obrazu pojedynczej strony rastera.
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)
Usunąć ramy na określonym indeksie z kolekcji ram bezprzewodowoIdealny dla deweloperów poszukujących rzetelnego zarządzania ramamiw ich wielokątnych obrazach.Ramy, które mają zostać usunięte, zostaną zlikwidowane.
public void RemoveFrameAt(int index)
Parameters
index
int
To jest indeks.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ResetDefaultImage()
Usunąć wcześniej ustawiony obraz domyślny za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą ponownie ustawić lub usunąć domyślny obraz w swojej animacji.Po tym, domyślny obraz jest pierwszą ramą w własnej kolekcji ram(nie można go usunąć za pomocą tej metody).
public void ResetDefaultImage()
Resize(int, int, resizeType)
Odśwież obraz bezprzewodowo za pomocą tej intuicyjnej metody. doskonały dla deweloperówStaramy się dynamicznie dostosować wymiary swoich obrazów.
public override void Resize(int newWidth, int newHeight, ResizeType resizeType)
Parameters
newWidth
int
Nowa szerokość .
newHeight
int
Nowa wysokość .
resizeType
ResizeType
Ten rodzaj rewizji.
Resize(int, int, ImageResizeSettings)
Odśwież obraz.
public override void Resize(int newWidth, int newHeight, ImageResizeSettings settings)
Parameters
newWidth
int
Nowa szerokość .
newHeight
int
Nowa wysokość .
settings
ImageResizeSettings
Zmiany w ustawieniach.
ResizeHeightProportionally(Tłumaczenie, ResizeType)
Nieprzyjemnie dostosować wysokość obrazu, jednocześnie utrzymując jego proporcjez tą intuicyjną metodą. doskonały dla deweloperów, którzy chcą odtworzyć obrazyDynamicznie, zachowując jednocześnie ich stosunek aspektowy.
public override void ResizeHeightProportionally(int newHeight, ResizeType resizeType)
Parameters
newHeight
int
Nowa wysokość .
resizeType
ResizeType
Rodzaj rezygnacji.
ResizeWidthProportionally(Tłumaczenie, ResizeType)
Proporcjonalnie odśwież szerokość obrazu bez wysiłku za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą utrzymać stosunek aspektów swoich obrazów podczasdostosowanie ich wymiarów.
public override void ResizeWidthProportionally(int newWidth, ResizeType resizeType)
Parameters
newWidth
int
Nowa szerokość .
resizeType
ResizeType
Rodzaj rezygnacji.
Rotate(Float, Bool, Kolor)
Obróć obraz wokół jego centrum bez wysiłku za pomocą tej intuicyjnej metody.Idealny dla deweloperów, którzy chcą dynamicznie dostosować orientację swoich obrazów.
public override void Rotate(float angle, bool resizeProportionally, Color backgroundColor)
Parameters
angle
float
Kąt obrotowy w stopniach. wartości pozytywne będą obrotować zegarem.
resizeProportionally
bool
Jeśli ustawisz na “prawdziwy”, zmienisz rozmiar obrazuw zależności od obrotowych projekcji rektangularnych (punktu węgielnego) w innym przypadku, które pozostawiają wymiary nie dotknięte i tylko wewnętrzne treści obrazów są obrotowane.
backgroundColor
Color
Kolor z tła.
RotateFlip(RotateFlipType)
Nieprzyjemnie manipuluj aktywnym ramy, rotując, pływając lub obydwiez tą intuicyjną metodą. idealny dla deweloperów, którzy chcą dostosowaćOrientacje ramy obrazu.
public override void RotateFlip(RotateFlipType rotateFlipType)
Parameters
rotateFlipType
RotateFlipType
Rodzaj rotacji flip.
SaveData(Stream)
Oszczędzaj dane.
protected override void SaveData(Stream stream)
Parameters
stream
Stream
Przepływ do przechowywania danych do.
SetDefaultImage(RasterImage)
Ustaw określony obraz rastera jako domyślny obraz dla aktualnej animacjibez wysiłku z tą metodą. doskonały dla deweloperów, którzy chcą dostosowaćZdjęcie domyślne w ich animacjach.
public void SetDefaultImage(RasterImage image)
Parameters
image
RasterImage
i obrazu .
Exceptions
Zdjęcie jest zero.
UpdateDimensions(i int, int)
Aktualizacja wymiarów obrazu.
protected override void UpdateDimensions(int newWidth, int newHeight)
Parameters
newWidth
int
Nowy widok obrazu.
newHeight
int
Nowa wysokość obrazu.
UpdateMetadata()
Aktualizacja metadatu obrazu.
protected override void UpdateMetadata()