ApngOptions

ApngOptions class

Animasyonlu PNG dosya formatı seçenekleri

public class ApngOptions : PngOptions

yapıcılar

İsimTanım
ApngOptions()Default_Constructor

Özellikleri

İsimTanım
BitDepth { get; set; }Bit derinliği.
BufferSizeHint { get; set; }Tüm dahili arabellekler için izin verilen maksimum boyut olarak tanımlanan arabellek boyutu ipucunu alır veya ayarlar.
ColorType { get; set; }Rengin türünü alır veya ayarlar.
CompressionLevel { get; set; }9’un maksimum sıkıştırma ve 0’ın depolama modu olduğu 0-9 aralığında png görüntü sıkıştırma düzeyi.
DefaultFrameTime { get; set; }Varsayılan kare süresini alır veya ayarlar.
Disposed { get; }Bu örneğin atılıp atılmadığını gösteren bir değer alır.
FilterType { get; set; }png dosyası kaydetme işlemi sırasında kullanılan filtre türünü alır veya ayarlar.
FullFrame { get; set; }[tam kare]. olup olmadığını belirten bir değer alır veya ayarlar.
MultiPageOptions { get; set; }Çoklu sayfa seçenekleri
NumPlays { get; set; }Döngü animasyonu sayısını alır veya ayarlar. 0 sonsuz döngüyü belirtir.
virtual Palette { get; set; }Renk paletini alır veya ayarlar.
ProgressEventHandler { get; set; }İlerleme olayı işleyicisini alır veya ayarlar.
Progressive { get; set; }Bunun olup olmadığını gösteren bir değer alır veya ayarlar.PngOptions ilericidir.
virtual ResolutionSettings { get; set; }Çözünürlük ayarlarını alır veya ayarlar.
Source { get; set; }Görüntü oluşturmak için kaynağı alır veya ayarlar.
VectorRasterizationOptions { get; set; }Vektör rasterleştirme seçeneklerini alır veya ayarlar.
override XmpData { get; set; }XMP meta veri kapsayıcısını alır veya ayarlar.

yöntemler

İsimTanım
virtual Clone()Bu örneği klonlar.
Dispose()Geçerli örneği atar.

Örnekler

Aşağıdaki örnek, apng APNG dosya biçiminin diğer animasyonlu olmayan çok sayfalı biçimden nasıl dışa aktarılacağını gösterir.

[C#]

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;

using (Image image = Image.Load("img4.tif")) {
    // Varsayılan çerçeve süresini ayarlama
    image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 ms
    image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 ms
}

Aşağıdaki örnek, APNG dosya biçimine nasıl dışa aktarılacağını gösterir.

[C#]

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;

using (Image image = Image.Load("Animation1.webp")) {
    // Varsayılan olarak sınırsız animasyon döngüsüyle APNG animasyonuna aktar
    image.Save("Animation1.webp.png", new ApngOptions());
    // Animasyon döngülerini ayarlama
    image.Save("Animation2.webp.png", new ApngOptions() { NumPlays = 5 }); // 5 döngü
}

Aşağıdaki örnek, başka bir tarama tek sayfalı görüntüden APNG görüntüsünün nasıl oluşturulacağını gösterir.

[C#]

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.FileFormats.Apng;

const int AnimationDuration = 1000; // 1 sn
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))
    {
        // Orada görüntü varsayılan çerçeve süresini ayarlamak mümkündür: apngImage.DefaultFrameTime = (uint)FrameDuration;

        int numOfFrames = AnimationDuration / FrameDuration;
        int numOfFrames2 = numOfFrames / 2;

        // Görüntü varsayılan olarak bir kare içerdiğinden temizleme
        apngImage.RemoveAllFrames();

        // ilk kareyi ekle
        apngImage.AddFrame(sourceImage);

        // ara çerçeveler ekle
        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);
        }

        // son kareyi ekle
        apngImage.AddFrame(sourceImage);

        apngImage.Save();
    }
}

Ayrıca bakınız