PNG Animasi (Portable Network Graphics) adalah ekstensi ke format PNG untuk menggabungkan animasi. Sama seperti GIF animasi, format APNG digunakan untuk menyajikan animasi. Keunggulan APNG dibandingkan GIF adalah mendukung transparansi 24-bit sedangkan GIF hanya mendukung 8-bit. Selain itu, APNG memberikan animasi yang lebih halus dibandingkan dengan GIF animasi. Pada artikel ini, saya akan menunjukkan cara membuat gambar animasi PNG (APNG) dari gambar atau Tiff multi-halaman dan mengekspor APNG ke animasi GIF secara terprogram menggunakan C# (atau VB.NET).

.NET API untuk Gambar PNG Animasi

Aspose menawarkan .NET Imaging API untuk membuat atau memanipulasi format gambar populer termasuk PNG animasi menggunakan C# atau VB.NET. Kami akan memanfaatkan kemampuan Aspose.Imaging for .NET untuk membuat atau mengekspor gambar PNG animasi. Anda dapat mengunduh DLL API atau menginstalnya dalam aplikasi .NET Anda menggunakan NuGet.

PM> Install-Package Aspose.Imaging

Buat PNG Animasi dari Gambar menggunakan C#

Aspose.Imaging for .NET memungkinkan Anda membuat PNG animasi dari gambar satu halaman seperti PNG dengan menyetel animasi khusus dan durasi bingkai. Berikut ini adalah langkah-langkah untuk melakukan operasi ini.

Contoh kode berikut menunjukkan cara membuat PNG animasi (APNG) dari gambar PNG menggunakan C#.

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))
    {
        int numOfFrames = AnimationDuration / FrameDuration;
        int numOfFrames2 = numOfFrames / 2;

        apngImage.RemoveAllFrames();

        // tambahkan bingkai pertama
        apngImage.AddFrame(sourceImage, FrameDuration);

        // tambahkan bingkai perantara
       for (int frameIndex = 1; frameIndex < numOfFrames - 1; ++frameIndex)
        {
            apngImage.AddFrame(sourceImage, FrameDuration);
            ApngFrame lastFrame = (ApngFrame)apngImage.Pages[apngImage.PageCount - 1];
            float gamma = frameIndex >= numOfFrames2 ? numOfFrames - frameIndex - 1 : frameIndex;
            lastFrame.AdjustGamma(gamma);
        }

        // tambahkan bingkai terakhir
        apngImage.AddFrame(sourceImage, FrameDuration);

        apngImage.Save();
    }
}

Buat PNG Animasi dari Tiff Multi-Halaman menggunakan C#

Anda juga dapat menggunakan file Tiff multi-halaman untuk membuat PNG animasi dengan mengatur waktu bingkai yang diinginkan. Berikut langkah-langkah membuat animasi PNG dari file Tiff.

Contoh kode berikut menunjukkan cara membuat PNG animasi dari file Tiff menggunakan C#.

// Contoh 4. Mengekspor ke format file APNG dari format non-animasi lainnya
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;

using (Image image = Image.Load("img4.tif")) {
    // Menyiapkan durasi bingkai default
    image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 ms
    image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 ms
}

Sumber Tiff

Source Tiff

PNG animasi

TIFF ke PNG Animasi

Ekspor PNG Animasi ke GIF Animasi menggunakan C#

Anda juga dapat mengekspor gambar PNG animasi ke GIF animasi yang setara. Berikut ini adalah langkah-langkah untuk mengekspor APNG ke GIF.

Contoh kode berikut menunjukkan cara mengekspor PNG animasi ke GIF menggunakan C#.

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

using (Image image = Image.Load("elephant.png")) {
    // Memeriksa jenis gambar yang dimuat
    Debug.Assert(image is ApngImage);
    // Simpan ke format yang sama
    image.Save("elephant_same_format.png");
    // Ekspor ke format animasi lainnya
    image.Save("elephant.png.gif", new GifOptions());
}

PNG Animasi Sumber

Gambar PNG Animasi

GIF animasi

PNG animasi ke GIF C#

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara membuat PNG animasi dari berbagai sumber menggunakan C#. Panduan langkah demi langkah dan contoh kode mendemonstrasikan cara membuat PNG animasi dari PNG satu halaman dan Tiff multi-halaman serta mengekspor PNG animasi ke GIF animasi menggunakan C#. Anda dapat mempelajari lebih lanjut tentang memanipulasi gambar APNG menggunakan dokumentasi API.

Lihat juga