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
- Buat PNG animasi dari gambar
- Buat PNG animasi dari file Tiff multi-halaman
- Ekspor PNG animasi ke GIF animasi
.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.
- Muat gambar PNG ke objek RasterImage menggunakan metode Image.Load(String).
- Atur properti ApngOptions sesuai kebutuhan Anda.
- Gunakan kelas ApngImage untuk membuat PNG animasi.
- Perbarui gamma setiap frame menggunakan metode ApngFrame.AdjustGamma(Single).
- Buat PNG animasi menggunakan metode ApngImage.Save().
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.
- Muat gambar Tiff di dalam objek kelas Image.
- Simpan Tiff sebagai APNG menggunakan metode Image.Save(String, ImageOptionsBase).
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
PNG animasi
![TIFF ke PNG Animasi](images/Tiff-to-Animated-PNG.png#center)
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.
- Muat PNG animasi ke objek Image.
- Ekspor APNG ke GIF menggunakan metode Image.Save(String, GifOptions()).
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](images/Animated-PNG.png#center)
GIF animasi
![PNG animasi ke GIF C#](images/Animated-Gif.gif#center)
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.