Class ApngImage
名称: Aspose.Imaging.FileFormats.Apng 收藏: Aspose.Imaging.dll (25.4.0)
动画PNG(动画移动网络图形)图像文件的API格式是一个多元化的解决方案,开发人员想要集成动画内容进入他们的应用程序. 此 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(ApngOptions, int, 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
快速获取有关此方便的属性文件格式的信息。理想的开发人员需要获取有关格式的详细信息您可以轻松地使用 Apng 文件。
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(拉斯特图像,Uint)
无缝扩展您的框架收藏,通过添加一个新的框架到用这种直观的方法. 理想的开发者想要丰富他们的多框图像的动画。新框的内容将从所指定的图像中填写。
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.Image 的对比用这种直观的方法,让细节突出,理想的开发者努力提高他们的图像的视觉清晰度和影响的动态。
public override void AdjustContrast(float contrast)
Parameters
contrast
float
对比值(在范围内(100;100)
AdjustGamma(航海)
在图像上应用Gamma纠正,使用浮点比例理想的开发人员寻求准确的颜色控制在他们的图像中。
public override void AdjustGamma(float gamma)
Parameters
gamma
float
红色、绿色和蓝色频道的Gamma
AdjustGamma(航海、航海、航海)
在图像上单独进行红色、绿色和蓝色频道的伽马纠正使用这个直观方法的个别比例,理想的开发人员寻求保持色彩平衡,提高图像的视觉质量。
public override void AdjustGamma(float gammaRed, float gammaGreen, float gammaBlue)
Parameters
gammaRed
float
红频率的Gamma
gammaGreen
float
绿色频道的Gamma
gammaBlue
float
蓝色频道的Gamma
BinarizeBradley(双重, int)
使用布拉德利的适应边界算法进行图像二元化,使用整体图像边界
public override void BinarizeBradley(double brightnessDifference, int windowSize)
Parameters
brightnessDifference
double
像素之间的亮度差异和像素的平均窗口 s x s 的差异聚集在这个像素周围。
windowSize
int
这个像素周围集中的像素的 x s 窗口的尺寸
BinarizeFixed(比特)
无力地使用预定义的边界来双重化图像直观方法 理想的开发人员寻求将图像转换为二进制形式,将其简化为进一步的处理或分析。
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(int , int , int , int , int)
用这种直观的方法,在调整转变时,将图像种植起来。理想的开发人员寻求精确控制收获过程专注于其 Apng 图像的特定区域。
public override void Crop(int leftShift, int rightShift, int topShift, int bottomShift)
Parameters
leftShift
int
左转。
rightShift
int
正确的转换。
topShift
int
顶级转换。
bottomShift
int
底部交换。
Dither(DitheringMethod, int,IColorPalette)
使用这种直观的方法,轻松地将直观效果应用到当前图像中。理想的开发人员想要添加结构或减少颜色带在他们的图像。
public override void Dither(DitheringMethod ditheringMethod, int bitsCount, IColorPalette customPalette)
Parameters
ditheringMethod
DitheringMethod
定位方法。
bitsCount
int
最后的比特数为Ditering。
customPalette
IColorPalette
可用于Ditering的配件。
Filter(Rectangle, FilterOptions 基于)
轻松地将过滤器应用到图像的指定的直角。直观方法 适合开发人员寻求改进或改进特定的领域。
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位。要避免它,并以每像素1比特保存PNG图像,使用此方法获得相应的储蓄选项并通过它们。在 Aspose.Imaging.Image.Save(System.String,Aspose.Imaging.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(饰 饰 饰 饰 饰 饰 饰 饰 饰)
在指定的指数中将新框插入自己的框架集合中。新框的内容将从所指定的图像中填写。
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 , ImageResizeSettings)
恢复图像。
public override void Resize(int newWidth, int newHeight, ImageResizeSettings settings)
Parameters
newWidth
int
新的宽度。
newHeight
int
新高度。
settings
ImageResizeSettings
重新设置。
ResizeHeightProportionally(重定向,重定向)
轻松调整图像的高度,同时保持其比例用这种直观的方法. 完美的开发人员寻求重新绘制图像动态,同时保持其方面比例。
public override void ResizeHeightProportionally(int newHeight, ResizeType resizeType)
Parameters
newHeight
int
新高度。
resizeType
ResizeType
回归的类型。
ResizeWidthProportionally(重定向,重定向)
通过这种直观的方法,将图像的宽度相对重复。理想的开发人员寻求保持其图像的视角比例,同时调整其尺寸。
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
旋转的Flip类型。
SaveData(Stream)
保存数据。
protected override void SaveData(Stream stream)
Parameters
stream
Stream
流来保存数据。
SetDefaultImage(RasterImage)
设置指定的拉斯特图像为当前动画的默认图像用这种方法无力,适合开发者寻求自定义他们的动画中的默认图像。
public void SetDefaultImage(RasterImage image)
Parameters
image
RasterImage
图像。
Exceptions
图像是零。
UpdateDimensions(int , int , int)
更新图像尺寸。
protected override void UpdateDimensions(int newWidth, int newHeight)
Parameters
newWidth
int
新图像宽度。
newHeight
int
新图像高度。
UpdateMetadata()
更新图像数据。
protected override void UpdateMetadata()