Class ApngImage

Class ApngImage

ชื่อพื้นที่: Aspose.Imaging.FileFormats.Apng การประกอบ: Aspose.Imaging.dll (25.4.0)

API สําหรับไฟล์ภาพ Animated PNG (กราฟิกเครือข่ายพกพา Animated)รูปแบบเป็นโซลูชันที่หลากหลายสําหรับนักพัฒนาที่ต้องการรวมเนื้อหาที่เคลื่อนไหวลงในแอพพลิเคชันของพวกเขา 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 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 class โดย initializingตัวอย่างใหม่อย่างหนัก เหมาะสําหรับนักพัฒนาที่ต้องการเริ่มต้นใช้วัตถุ ApngImage ได้อย่างรวดเร็วและมีประสิทธิภาพในโครงการของพวกเขา

public ApngImage(ApngOptions options, int width, int height)

Parameters

options ApngOptions

ตัวเลือก

width int

ความกว้าง

height int

ความสูง

Properties

DefaultFrameTime

ง่ายต่อการปรับระยะเวลาเฟรมแบบกําหนดเองเพื่อสร้างเฟรมใหม่คุณสมบัติที่ยืดหยุ่นนี้ เหมาะสําหรับนักพัฒนาที่ต้องการปรับแต่งเวลาเฟรมประสิทธิภาพในการเคลื่อนไหวของพวกเขา

public uint DefaultFrameTime { get; set; }

คุณสมบัติมูลค่า

uint

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; }

คุณสมบัติมูลค่า

FileFormat

Interlaced

ตรวจสอบอย่างรวดเร็วว่าสิ่งนี้ Aspose.Imaging.FileFormats.Png.PngImage จะถูกเชื่อมต่อด้วยคุณสมบัติที่สะดวกสบายนี้ เหมาะสําหรับนักพัฒนาที่จําเป็นต้องตรวจสอบสถานะการเชื่อมต่อของภาพ PNG ได้ง่าย

public bool Interlaced { get; }

คุณสมบัติมูลค่า

bool

NumPlays

ตรวจสอบได้อย่างง่ายดายจํานวนครั้งที่การเคลื่อนไหวของคุณไหลด้วยนี้คุณสมบัติที่หลากหลาย เหมาะสําหรับนักพัฒนาที่มองหาการควบคุมที่แม่นยําการเคลื่อนไหวพฤติกรรม, ด้วยการสนับสนุนสําหรับการล้อ infinite ในกรณีของหมายเลขเท่ากับ 0.

public int NumPlays { get; set; }

คุณสมบัติมูลค่า

int

PageCount

รับจํานวนหน้าทั้งหมดในไฟล์ภาพของคุณได้อย่างง่ายดายด้วยคุณสมบัตินี้เหมาะสําหรับนักพัฒนาที่ต้องการการเข้าถึงข้อมูลการคํานวณหน้าได้อย่างรวดเร็ว

public override int PageCount { get; }

คุณสมบัติมูลค่า

int

Pages

เข้าถึงหน้าของภาพของคุณได้อย่างง่ายดายด้วยคุณสมบัติที่สะดวกนี้เหมาะสําหรับนักพัฒนาที่กําลังมองหาการเข้าถึงได้อย่างรวดเร็วและง่ายต่อหน้าส่วนบุคคลสําหรับการจัดการ

public override Image[] Pages { get; }

คุณสมบัติมูลค่า

Image [ ]

XmpData

การจัดการ metadata XMP ที่เกี่ยวข้องกับไฟล์ของคุณโดยใช้คุณสมบัติที่หลากหลาย เหมาะสําหรับนักพัฒนาที่ต้องการเข้าถึงหรือปรับปรุงข้อมูลอัตโนมัติที่มีความสะดวก

public override XmpPacketWrapper XmpData { get; set; }

คุณสมบัติมูลค่า

XmpPacketWrapper

Methods

AddFrame()

เพิ่มกรอบใหม่ได้อย่างง่ายดายไปยังจุดสิ้นสุดของชุดกรอบของคุณด้วยนี้วิธีการที่เรียบง่าย เหมาะสําหรับนักพัฒนาที่ต้องการขยายตัวของพวกเขาการเก็บรวบรวมเฟรมแบบไดนามิกสําหรับภาพเคลื่อนไหวที่มีรูปภาพหลายเฟรมโครงใหม่จะถูกสร้างขึ้นตามขนาดของภาพปัจจุบัน

public ApngFrame AddFrame()

Returns

ApngFrame

โครงสร้าง 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

ArgumentNullException

frameImage เป็น null

AddFrame(สื่อลามก, uint)

การขยายการเก็บรวบรวมเฟรมของคุณโดยการเพิ่มเฟรมใหม่ไปยังด้วยวิธีการที่ใช้งานง่ายนี้ เหมาะสําหรับนักพัฒนาที่กําลังมองหาการอุดมสมบูรณ์การเคลื่อนไหวของภาพหลายเฟรมเนื้อหาของกรอบใหม่จะถูกเติมจากภาพที่ระบุ

public void AddFrame(RasterImage frameImage, uint frameTime)

Parameters

frameImage RasterImage

รูปภาพกรอบ

frameTime uint

ความยาวของกรอบใน milliseconds

Exceptions

ArgumentNullException

frameImage เป็น null

AddPage(RasterImage)

เพิ่มหน้าใหม่ไปยังภาพได้อย่างง่ายดายโดยใช้วิธีการที่ใช้งานง่ายนี้เหมาะสําหรับนักพัฒนาที่ต้องการขยายเนื้อหาของไฟล์ภาพของพวกเขาอย่างไดนามิก

public void AddPage(RasterImage page)

Parameters

page RasterImage

หน้าที่เพิ่ม

Exceptions

ArgumentNullException

page’ is null.

AdjustBrightness(int)

ง่ายต่อการปรับความสว่าง ของภาพด้วยวิธีการที่ใช้งานง่ายนี้โดยใช้พารามิเตอร์ความสว่างที่ระบุ เหมาะสําหรับนักพัฒนาที่ต้องการปรับปรุงหรือลดความสว่างโดยรวมของภาพอย่างไดนามิก

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(เฟอร์รี่)

ใช้การแก้ไขเกัมม้าสําหรับภาพโดยใช้อัตราการไหลของจุดด้วยวิธีการใช้งานนี้ เหมาะสําหรับนักพัฒนาที่ต้องการการควบคุมสีที่แม่นยําในภาพของพวกเขา

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 สําหรับช่องแดง Coefficient

gammaGreen float

Gamma สําหรับ Coefficient ช่องสีเขียว

gammaBlue float

Gamma สําหรับ Coefficient ช่องสีฟ้า

BinarizeBradley(สอง, int)

การไบนารายการของภาพโดยใช้แอลกอริทึมการปรับตัวของ Bradley โดยใช้แอลกอริทึมภาพแบบบูรณาการ

public override void BinarizeBradley(double brightnessDifference, int windowSize)

Parameters

brightnessDifference double

ความแตกต่างของความสว่างระหว่างพิกเซลและเฉลี่ยของหน้าต่าง s x s ของพิกเซลมุ่งเน้นรอบพิกเซลนี้

windowSize int

ขนาดหน้าต่าง s 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)

พืชภาพในขณะที่ปรับเปลี่ยนได้อย่างราบรื่นด้วยวิธีการที่ใช้งานง่ายนี้เหมาะสําหรับนักพัฒนาที่กําลังมองหาการควบคุมอย่างแม่นยําของกระบวนการปลูกเพื่อให้มุ่งเน้นไปที่พื้นที่เฉพาะของภาพ 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

บิตสุดท้ายคํานวณสําหรับ dithering

customPalette IColorPalette

แพลิเคชันที่กําหนดเองสําหรับ dithering

Filter(Rectangle, 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

ImageOptionsBase

ตัวเลือกที่กําหนดเอง

GetModifyDate(บอล)

รับวันที่และเวลาอย่างรวดเร็วเมื่อภาพทรัพยากรได้รับการแก้ไขครั้งสุดท้ายด้วยวิธีการที่ใช้งานง่าย เหมาะสําหรับนักพัฒนาที่จําเป็นต้องติดตามการเปลี่ยนแปลงและจัดการทรัพยากรได้อย่างมีประสิทธิภาพ

public override DateTime GetModifyDate(bool useDefault)

Parameters

useDefault bool

ถ้าตั้งค่าเป็น “จริง” ใช้ข้อมูลจาก FileInfo เป็นค่าเริ่มต้น

Returns

DateTime

วันที่และเวลาภาพทรัพยากรได้รับการแก้ไขครั้งสุดท้าย

GetOriginalOptions()

Retrieve options based on the original file settings effortlessly with this intuitive method.เหมาะสําหรับนักพัฒนาที่ต้องการเข้าถึงและใช้การตั้งค่าที่สอดคล้องกับคุณสมบัติจากไฟล์เดิมนี่อาจเป็นประโยชน์ในการรักษาความลึกและพารามิเตอร์อื่น ๆ ของภาพเดิมไม่เปลี่ยนแปลงตัวอย่างเช่นถ้าเราโหลดภาพ PNG สีดําและสีขาวด้วย 1 บิตต่อพิกเซลแล้วบันทึกมันโดยใช้Aspose.Imaging.DataStreamSupporter.Save(System.String) วิธีการภาพ PNG output กับ 8 บิตต่อพิกเซลจะผลิตเพื่อหลีกเลี่ยงและบันทึกภาพ PNG ด้วย 1 บิตต่อพิกเซลใช้วิธีการนี้เพื่อรับตัวเลือกการบันทึกที่เหมาะสมและผ่านพวกเขาวิธีการ Aspose.Imaging.Image.Save(System.String,Aspose.Imaging.ImageOptionsBase) เป็นพารามิเตอร์ที่สอง

public override ImageOptionsBase GetOriginalOptions()

Returns

ImageOptionsBase

ตัวเลือกตามการตั้งค่าไฟล์เดิม

GetPagesAsEnumerable()

รับหน้าเป็นหมายเลข

protected override IEnumerable<image/> GetPagesAsEnumerable()

Returns

IEnumerable < Image >

หน้าของตัวเองเป็นจํานวนมาก

Grayscale()

เปลี่ยนภาพได้อย่างง่ายดายไปสู่การแสดงภาพสีเทาด้วยวิธีการที่ใช้งานง่ายนี้เหมาะสําหรับนักพัฒนาที่กําลังมองหาการแปลงภาพสีเป็นสีเทาอย่างเรียบง่ายกระบวนการวิเคราะห์หรือวิเคราะห์

public override void Grayscale()

InsertFrame(int)

ใส่กรอบใหม่ได้อย่างง่ายดายในรวบรวมกรอบของคุณที่ระบุไว้ด้วยวิธีการที่ใช้งานง่ายนี้ เหมาะสําหรับนักพัฒนาที่ต้องการการควบคุมที่แม่นยําการจัดระเบียบของเฟรมในภาพเคลื่อนไหวของพวกเขาหลายเฟรมโครงใหม่จะถูกสร้างขึ้นตามขนาดของภาพปัจจุบัน

public ApngFrame InsertFrame(int index)

Parameters

index int

ดัชนี

Returns

ApngFrame

โครงสร้าง APNG ที่สร้างขึ้นใหม่

Exceptions

ArgumentOutOfRangeException

index’ is less than 0.orindex’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.

InsertFrame(อินเทอร์, RasterImage)

ใส่กรอบใหม่ลงในรวบรวมกรอบของตัวเองใน index ที่ระบุไว้เนื้อหาของกรอบใหม่จะถูกเติมจากภาพที่ระบุ

public void InsertFrame(int index, RasterImage frameImage)

Parameters

index int

ดัชนี

frameImage RasterImage

รูปภาพกรอบ

Exceptions

ArgumentOutOfRangeException

index’ is less than 0.orindex’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.

ArgumentNullException

frameImage เป็น null

InsertFrame(int, RasterImage, uint)

ใส่กรอบใหม่ลงในรวบรวมกรอบของตัวเองใน index ที่ระบุไว้เนื้อหาของกรอบใหม่จะถูกเติมจากภาพที่ระบุ

public void InsertFrame(int index, RasterImage frameImage, uint frameTime)

Parameters

index int

ดัชนี

frameImage RasterImage

รูปภาพกรอบ

frameTime uint

ความยาวของกรอบใน milliseconds

Exceptions

ArgumentOutOfRangeException

index’ is less than 0.orindex’ is greater than Aspose.Imaging.FileFormats.Apng.ApngImage.PageCount.

ArgumentNullException

frameImage เป็น null

PopFrameAt(int)

ลบและรับกรอบใน index ที่ระบุจากรวบรวมกรอบของคุณด้วยวิธีการใช้งานนี้ เหมาะสําหรับนักพัฒนาที่กําลังมองหาการจัดการที่มีประสิทธิภาพของเฟรมใน animations ของพวกเขา

public ApngFrame PopFrameAt(int index)

Parameters

index int

ดัชนี

Returns

ApngFrame

กรอบ APNG ที่ถอดออก

Exceptions

ArgumentOutOfRangeException

index’ is less than 0.orindex’ 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 &lt; numOfFrames - 1; ++frameIndex)
                                                                                                              {
                                                                                                                  apngImage.AddFrame(sourceImage);
                                                                                                                  ApngFrame lastFrame = (ApngFrame)apngImage.Pages[apngImage.PageCount - 1];
                                                                                                                  float gamma = frameIndex &gt;= numOfFrames2 ? numOfFrames - frameIndex - 1 : frameIndex;
                                                                                                                  lastFrame.AdjustGamma(gamma);
                                                                                                              }

                                                                                                              // add last frame
                                                                                                              apngImage.AddFrame(sourceImage);

                                                                                                              apngImage.Save();
                                                                                                          }
                                                                                                      }

RemoveFrameAt(int)

ลบกรอบในตัวดัชนีที่ระบุจากรวบรวมกรอบของคุณโดยไม่มีรอยต่อด้วยวิธีการนี้ เหมาะสําหรับนักพัฒนาที่กําลังมองหาการจัดการเฟรมที่สมบูรณ์แบบในภาพหลายเฟรมของพวกเขากรอบที่จะลบจะถูกลบ

public void RemoveFrameAt(int index)

Parameters

index int

ดัชนี

Exceptions

ArgumentOutOfRangeException

index’ is less than 0.orindex’ 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(int, ResizeType)

การปรับความสูงของภาพของคุณอย่างง่ายดายในขณะที่รักษาความสัมพันธ์ของภาพด้วยวิธีการที่ใช้งานง่ายนี้ เหมาะสําหรับนักพัฒนาที่ต้องการรีไซเคิลภาพดินไดนามิกในขณะที่รักษาความสัมพันธ์ด้านของพวกเขา

public override void ResizeHeightProportionally(int newHeight, ResizeType resizeType)

Parameters

newHeight int

ความสูงใหม่

resizeType ResizeType

ประเภทของ Resize

ResizeWidthProportionally(int, ResizeType)

การรีไซเคิลความกว้างของภาพอย่างสม่ําเสมอโดยใช้วิธีการที่ใช้งานง่ายนี้เหมาะสําหรับนักพัฒนาที่ต้องการรักษาความสัมพันธ์ด้านของภาพของพวกเขาในขณะที่การปรับขนาดของพวกเขา

public override void ResizeWidthProportionally(int newWidth, ResizeType resizeType)

Parameters

newWidth int

ความกว้างใหม่

resizeType ResizeType

ประเภทของ Resize

Rotate(บอล, บอล, สี)

รอบภาพรอบศูนย์กลางของมันโดยไม่ต้องพยายามด้วยวิธีการที่ใช้งานง่ายนี้เหมาะสําหรับนักพัฒนาที่ต้องการปรับทิศทางของภาพของพวกเขาอย่างไดนามิก

public override void Rotate(float angle, bool resizeProportionally, Color backgroundColor)

Parameters

angle float

มุมหมุนในเกรด หมายเลขเชิงบวกจะหมุนตามชั่วโมง

resizeProportionally bool

ถ้าตั้งค่าเป็น “จริง” คุณจะมีการเปลี่ยนแปลงขนาดภาพของคุณตามแนวตั้งหมุน (จุดมุม) projections ในกรณีอื่น ๆ ที่ปล่อยให้มิติไม่สัมผัสและเพียงภายใน เนื้อหาภาพจะหมุน

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)

กําหนดภาพสกรูที่ระบุเป็นภาพเริ่มต้นสําหรับภาพเคลื่อนไหวปัจจุบันโดยไม่มีความพยายามกับวิธีการนี้ เหมาะสําหรับนักพัฒนาที่ต้องการปรับแต่งรูปแบบ default ในภาพเคลื่อนไหวของพวกเขา

public void SetDefaultImage(RasterImage image)

Parameters

image RasterImage

รูปภาพ

Exceptions

ArgumentNullException

ภาพเป็นศูนย์

UpdateDimensions(int, int)

ปรับปรุงขนาดภาพ

protected override void UpdateDimensions(int newWidth, int newHeight)

Parameters

newWidth int

ความกว้างของภาพใหม่

newHeight int

ความสูงของภาพใหม่

UpdateMetadata()

การอัปเดตของภาพ metadata

protected override void UpdateMetadata()
 แบบไทย