Class ApngImage
Название пространства: Aspose.Imaging.FileFormats.Apng Ассоциация: Aspose.Imaging.dll (25.4.0)
API для анимационных файлов PNG (Animated Portable Network Graphics)формат является универсальным решением для разработчиков, которые хотят интегрироватьанимационный контент в их приложениях. эта API предлагает обширныеКонтроль над настройками рамки, позволяя пользователям определять спецификупараметры, в том числе продолжительность круга и настройки файла PNG.функция-богатый инструмент, вы можете без труда управлять и оптимизировать дисплейизображения APNG, импорт и экспорт изображений, улучшение динамики иИнтерактивные аспекты ваших приложений.
[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
Наследованные члены
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
Следующий пример показывает, как экспортировать формат файла APNG из другого неанимированного мультистраничного формата.
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
}
Следующий пример показывает, как экспортировать в формат файла 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
}
Следующий пример показывает, как создать APNG-изображение из другого растерного одностороннего изображения.
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(АпгOptions, int, инт)
Начните работать с классом Aspose.Imaging.FileFormats.Apng. ApngImage, инициируяИдеально подходит для разработчиков, которые хотят начатьиспользовать объекты ApngImage быстро и эффективно в своих проектах.
public ApngImage(ApngOptions options, int width, int height)
Parameters
options
ApngOptions
и вариантов .
width
int
и широты .
height
int
и высоты .
Properties
DefaultFrameTime
Легко приспособиться к установленной продолжительности рамки для создания новых кадров сЭто гибкое свойство. Идеально подходит для разработчиков, которые стремятся настроить график рамкиэффективно в своих анимациях.
public uint DefaultFrameTime { get; set; }
Стоимость недвижимости
Examples
Следующий пример показывает, как создать APNG-изображение из другого растерного одностороннего изображения.
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
Быстрый доступ к информации о формате файла с этой удобной собственностью.Идеально для разработчиков, которые нуждаются в получении деталей о форматеСвои файлы APK легко.
public override FileFormat FileFormat { get; }
Стоимость недвижимости
Interlaced
Быстро определить, взаимосвязан ли этот объект Aspose.Imaging.FileFormats.png.PngImageс этой удобной недвижимостью. Идеально для разработчиков, нуждающихся в проверкевзаимосвязанный статус PNG изображений легко.
public bool Interlaced { get; }
Стоимость недвижимости
NumPlays
Неуспешно контролируйте количество раз, когда ваша анимация проходит с этимвсеобъемлющая собственность. идеально подходит для разработчиков, которые ищут точного контроля наданимационное поведение, с поддержкой для бесконечного крушения в случаеСтоимость равна 0.
public int NumPlays { get; set; }
Стоимость недвижимости
PageCount
Повторить общее количество страниц в файле изображения без труда с этой собственностью.Идеально подходит для разработчиков, которые нуждаются в быстром доступе к информации по числу страниц.
public override int PageCount { get; }
Стоимость недвижимости
Pages
Бесплатный доступ к страницам вашего изображения с этой удобной недвижимостью.Идеально подходит для разработчиков, которые ищут быстрый и легкий доступ к индивидуальным страницам для манипуляции.
public override Image[] Pages { get; }
Стоимость недвижимости
Image [ ]
XmpData
Неэффективно управлять XMP метаданными, связанными с вашими файлами с помощью этогоСовершенно подходящий для разработчиков, которые ищут доступ или обновлениеМетаданная информация с легкостью.
public override XmpPacketWrapper XmpData { get; set; }
Стоимость недвижимости
Methods
AddFrame()
Легко добавьте новую рамку к концу вашей коллекции рамки с этимпростой метод. идеальный для разработчиков, которые хотят расширить своиДинамическая коллекция кадров для анимаций с мультифрамными изображениями.Новая рамка будет создана в соответствии с размером текущего изображения.
public ApngFrame AddFrame()
Returns
Недавно созданная APNG рамка.
AddFrame(RasterImage)
Неуспешно расширяйте свою коллекцию рамки, добавляя к концу новую рамку.с этим интуитивным методом. Идеально подходит для разработчиков, стремящихся улучшить свойАнимации мультифрамных изображений динамично.Содержание новой рамки будет заполнено из указанного изображения.
public void AddFrame(RasterImage frameImage)
Parameters
frameImage
RasterImage
Изображение рамки.
Examples
Следующий пример показывает, как создать APNG-изображение из другого растерного одностороннего изображения.
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 не нулевой.
AddFrame(РастерИммаж, Уинт)
Расширяйте свою коллекцию рамки бессмысленно, прикладывая новую рамку кс этим интуитивным методом. идеально для разработчиков, которые хотят обогатить свойАнимации мультифрамных изображений.Содержание новой рамки будет заполнено из указанного изображения.
public void AddFrame(RasterImage frameImage, uint frameTime)
Parameters
frameImage
RasterImage
Изображение рамки.
frameTime
uint
Длительность рамки, в миллисекундах.
Exceptions
FrameImage не нулевой.
AddPage(RasterImage)
Добавьте новую страницу к изображению без труда с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые стремятся динамично расширить содержание своих файлов изображения.
public void AddPage(RasterImage page)
Parameters
page
RasterImage
Страница для добавления.
Exceptions
page’ is null.
AdjustBrightness(ИНТ)
Легко корректировать яркость " изображения с помощью этого интуитивного метода, используя указанный яркий параметр.
public override void AdjustBrightness(int brightness)
Parameters
brightness
int
Значение яркости .
AdjustContrast(Флота)
Улучшает контраст Aspose.Imaging.Изображениедля того, чтобы детали отличались этим интуитивным методом. идеально для разработчиковстремясь динамично улучшить зрительную ясность и влияние их изображений.
public override void AdjustContrast(float contrast)
Parameters
contrast
float
Контрастная стоимость (в диапазоне [-100; 100])
AdjustGamma(Флота)
Применить коррекцию гаммы к изображению с помощью коэффициента плавающей точкиИдеально подходит для разработчиков, которые ищут точный контроль цвета.в их изображениях.
public override void AdjustGamma(float gamma)
Parameters
gamma
float
Коэффициент гаммы для красных, зеленых и синих каналов
AdjustGamma(флота, флота и флота)
Проведите коррекцию гаммы на изображении отдельно для красных, зеленых и синих каналов.использование индивидуальных коефициентов с этим интуитивным методом. Идеально для разработчиков, которые ищутдля фино-тунного цветового баланса и улучшения визуального качества их изображений.
public override void AdjustGamma(float gammaRed, float gammaGreen, float gammaBlue)
Parameters
gammaRed
float
Гама для коэффициента красного канала
gammaGreen
float
Гама для коэффициента зеленого канала
gammaBlue
float
Гама для коэффициента синего канала
BinarizeBradley(Двойная, int)
Бинаризация изображения с использованием алгоритма адаптивной границы Брэдли с использованием интегральной границы изображения
public override void BinarizeBradley(double brightnessDifference, int windowSize)
Parameters
brightnessDifference
double
Разница в яркости между пикселем и средним окном с x с pixelsСосредоточен вокруг этого пикселя.
windowSize
int
Размер окна x с пикселей, сосредоточенных вокруг этого пикселя
BinarizeFixed(byte)
Бессмысленно бинарнизировать изображение с использованием заранее определенного порога с этимИнтуитивный метод. Идеальный для разработчиков, стремящихся конвертировать изображения в бинарную форму,Упростить их для дальнейшей обработки или анализа.
public override void BinarizeFixed(byte threshold)
Parameters
threshold
byte
Если соответствующая серная стоимость пикселя превышает границу, то255 будет присвоено к нему, 0 иначе.
BinarizeOtsu()
Осуществляйте бинарность на изображении с помощью прямой линии Otsu с этим интуитивным методом.Идеально подходит для разработчиков, которые стремятся автоматически определить оптимальный порог дляКонвертирование изображений в бинарную форму, повышение их четкости и целесообразности для дальнейшего анализа.
public override void BinarizeOtsu()
Crop(Rectangle)
Неуспешно выращивать изображение, чтобы сосредоточиться на конкретных областях с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые стремятся динамично усовершенствовать состав своих изображений.
public override void Crop(Rectangle rectangle)
Parameters
rectangle
Rectangle
На правой стороне.
Crop(Инт, инт, инт, инт)
Растение изображения при корректировке перемещений бессмысленно с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые ищут точный контроль над процессом урожая.сосредоточиться на конкретных областях их Apng изображений.
public override void Crop(int leftShift, int rightShift, int topShift, int bottomShift)
Parameters
leftShift
int
левый переход.
rightShift
int
Правильный переход .
topShift
int
Верхний переход .
bottomShift
int
Нижнее перемещение .
Dither(ДитарингМетод, int, IColorPalette)
Легко применять эффекты дитринга к текущему изображению с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые хотят добавить текстуру или уменьшить цветную связь в своих изображениях.
public override void Dither(DitheringMethod ditheringMethod, int bitsCount, IColorPalette customPalette)
Parameters
ditheringMethod
DitheringMethod
Метод дифференциации .
bitsCount
int
Последние биты рассчитывают на дитирование.
customPalette
IColorPalette
Космическая палитра для дитирования.
Filter(Оригинальное название: FilterOptionsBase)
Неожиданно наносить фильтры на указанный прямоуголь изображения с этимИнтуитивный метод. Идеально подходит для разработчиков, которые стремятся улучшить или изменить конкретные области.
public override void Filter(Rectangle rectangle, FilterOptionsBase options)
Parameters
rectangle
Rectangle
На правой стороне.
options
FilterOptionsBase
и вариантов .
GetDefaultOptions(Объекты[])
Редактируйте предпочтительные варианты без труда с помощью этого простого метода.Идеально подходит для разработчиков, которые ищут быстрый доступ к стандартным настройкам изображения Apng.
public override ImageOptionsBase GetDefaultOptions(object[] args)
Parameters
args
object
[ ]
и аргументов .
Returns
Стандартные варианты
GetModifyDate(Боол)
Быстро получить дату и время, когда изображение ресурса было в последний раз измененоИдеально для разработчиков, которые нуждаются в отслеживании измененийи эффективно управлять ресурсами.
public override DateTime GetModifyDate(bool useDefault)
Parameters
useDefault
bool
Если вы настроены на «истинные», используйте информацию из FileInfo в качестве предпочтительной стоимости.
Returns
Дата и время последней модификации изображения ресурса.
GetOriginalOptions()
Реструктурируйте варианты, основанные на первоначальных настройках файла без труда с помощью этого интуитивного метода.Идеально подходит для разработчиков, желающих получить доступ и использовать настройки, которые соответствуют характеристикамиз оригинального файла.Это может быть полезным для сохранения детальной глубины и других параметров оригинального изображения неизменными.Например, если мы загружаем черно-белый PNG-изображение с 1 битом на пиксель, а затем сохраним его с помощьюAspose.Imaging.DataStreamSupporter.Save(System.String) метод, выходный PNG изображение с 8-битным на пиксель будет производиться.Чтобы избежать этого и сохранить изображение PNG на 1 бит на пиксель, используйте этот метод, чтобы получить соответствующие варианты сохранения и пройти их.в метод Aspose.Imaging.Image.Save(System.String,_Wl17.ImageOptionsBase) как второй параметр.
public override ImageOptionsBase GetOriginalOptions()
Returns
Опции, основанные на первоначальных настройках файла.
GetPagesAsEnumerable()
Получить страницы как перечисленные.
protected override IEnumerable<image/> GetPagesAsEnumerable()
Returns
IEnumerable • < Image >
Свои страницы как можно перечислить.
Grayscale()
Легко превратить изображение в его грейскальное представление с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые стремятся конвертировать цветные изображения в серый масштаб, упрощая ихвизуализации или аналитических процессов.
public override void Grayscale()
InsertFrame(ИНТ)
Бессмысленно введите новую рамку в вашу коллекцию в установленномс этим интуитивным методом. Идеально для разработчиков, ищущих точный контроль надУстройство кадров в их анимациях мультифрамных изображений.Новая рамка будет создана в соответствии с размером текущего изображения.
public ApngFrame InsertFrame(int index)
Parameters
index
int
В этом индексе.
Returns
Недавно созданная APNG рамка.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
InsertFrame(Индекс, RasterImage)
Введите новую рамку в собственную коллекцию на указанном индексе.Содержание новой рамки будет заполнено из указанного изображения.
public void InsertFrame(int index, RasterImage frameImage)
Parameters
index
int
В этом индексе.
frameImage
RasterImage
Изображение рамки.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
FrameImage не нулевой.
InsertFrame(Название: RasterImage, Uint)
Введите новую рамку в собственную коллекцию на указанном индексе.Содержание новой рамки будет заполнено из указанного изображения.
public void InsertFrame(int index, RasterImage frameImage, uint frameTime)
Parameters
index
int
В этом индексе.
frameImage
RasterImage
Изображение рамки.
frameTime
uint
Длительность рамки, в миллисекундах.
Exceptions
index’ is less than 0.or
index’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
FrameImage не нулевой.
PopFrameAt(ИНТ)
Удаление и восстановление рамки на указанном индексе из вашей коллекциис этим интуитивным методом. Идеально подходит для разработчиков, ищущих эффективное управлениеФрамы в их анимациях.
public ApngFrame PopFrameAt(int index)
Parameters
index
int
В этом индексе.
Returns
Удаленная рамка APNG.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ReleaseManagedResources()
Убедитесь, что не управляемые ресурсы не выпускаются здесь, так как они могут бытьуже освобождены.
protected override void ReleaseManagedResources()
RemoveAllFrames()
Откройте свою коллекцию кадров, удаляя все кадры этим интуитивным методом.Идеально подходит для разработчиков, которые ищут восстановление или обновление своих анимаций.
public void RemoveAllFrames()
Examples
Следующий пример показывает, как создать APNG-изображение из другого растерного одностороннего изображения.
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(ИНТ)
Удалите рамку на указанном индексе из вашей коллекции рамки беспрепятственноИдеально подходит для разработчиков, которые ищут ускоренное управление рамками.в их мультифрамных изображениях.Рамка, которая должна быть удалена, будет ликвидирована.
public void RemoveFrameAt(int index)
Parameters
index
int
В этом индексе.
Exceptions
index’ is less than 0.or
index’ is equal to or greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.
ResetDefaultImage()
Удаление предварительно установленного изображения с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые ищут восстановление или удаление предпочтительного изображения в своей анимации.После этого по умолчанию изображение является первой рамкой в собственной коллекции рамки.(Это не может быть удалено с помощью этого метода).
public void ResetDefaultImage()
Resize(int, int, resizeType)
Рециркулируйте изображение бессознательно с помощью этого интуитивного метода. Идеально подходит для разработчиковстремясь динамично корректировать размеры своих изображений.
public override void Resize(int newWidth, int newHeight, ResizeType resizeType)
Parameters
newWidth
int
Новая ширина .
newHeight
int
Новая высота .
resizeType
ResizeType
Тип рецидивов .
Resize(int, int, ImageResizeНастройки)
Изображение восстанавливается.
public override void Resize(int newWidth, int newHeight, ImageResizeSettings settings)
Parameters
newWidth
int
Новая ширина .
newHeight
int
Новая высота .
settings
ImageResizeSettings
Рецидивные настройки .
ResizeHeightProportionally(Инт, ResizeType)
Неожиданно корректировать высоту вашего изображения при сохранении его пропорцийс этим интуитивным методом. Идеально подходит для разработчиков, которые ищут воссоздание изображенийдинамично при сохранении их аспектного соотношения.
public override void ResizeHeightProportionally(int newHeight, ResizeType resizeType)
Parameters
newHeight
int
Новая высота .
resizeType
ResizeType
Тип рецидивов .
ResizeWidthProportionally(Инт, ResizeType)
Пропорционально рецидивируйте ширину изображения без труда с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые стремятся сохранить аспектный соотношение своих изображений, в то время каккорректировать их размеры.
public override void ResizeWidthProportionally(int newWidth, ResizeType resizeType)
Parameters
newWidth
int
Новая ширина .
resizeType
ResizeType
Тип рецидивов .
Rotate(Флоат, Боол, Цвет)
Неожиданно поворачивайте изображение вокруг центра с помощью этого интуитивного метода.Идеально подходит для разработчиков, которые стремятся динамично корректировать ориентацию своих изображений.
public override void Rotate(float angle, bool resizeProportionally, Color backgroundColor)
Parameters
angle
float
Угол поворота в градусах.Позитивные значения будут поворачиваться по часам.
resizeProportionally
bool
Если вы настроены на «истинный», размер изображения изменится в соответствии с оборотными прямоугольными (корнерными точками) проекциями в ином случае, которые оставляют измерения незамеченными и только внутреннее изображение содержимое оборается.
backgroundColor
Color
Цвет на фоне.
RotateFlip(RotateFlipType)
Неуспешно манипулировать активной рамкой, поворачивая, флипируя или обас этим интуитивным методом. Идеально для разработчиков, которые стремятся персонализироватьОриентация кадров изображения.
public override void RotateFlip(RotateFlipType rotateFlipType)
Parameters
rotateFlipType
RotateFlipType
Тип ротационного флипа.
SaveData(Stream)
Сохранить данные.
protected override void SaveData(Stream stream)
Parameters
stream
Stream
Поток для сохранения данных.
SetDefaultImage(RasterImage)
Настройка указанного изображения растера в качестве предпочтительной картины для текущей анимациибез труда с этим методом. Идеально подходит для разработчиков, которые стремятся персонализироватьИзображение в их анимациях.
public void SetDefaultImage(RasterImage image)
Parameters
image
RasterImage
Изображение .
Exceptions
Изображение является нулевым.
UpdateDimensions(Инт, Инт)
Обновление размеров изображения.
protected override void UpdateDimensions(int newWidth, int newHeight)
Parameters
newWidth
int
Новое изображение ширины.
newHeight
int
Высота нового изображения.
UpdateMetadata()
Обновление метаданных изображения.
protected override void UpdateMetadata()