Animated PNG (Portable Network Graphics) ist eine Erweiterung des PNG-Formats zur Einbindung der Animationen. Genau wie animierte GIFs wird das APNG Format verwendet, um die Animationen zu präsentieren. Ein Vorteil von APNG gegenüber GIF ist, dass es 24-Bit-Transparenz unterstützt, während GIF nur 8-Bit unterstützt. Darüber hinaus bietet APNG im Vergleich zu einem animierten GIF eine flüssigere Animation. In diesem Artikel zeige ich Ihnen, wie Sie die animierten PNG Bilder (APNG) aus einem Bild oder einer mehrseitigen TIFF Datei erstellen und APNG mithilfe von C# (oder VB.NET) programmgesteuert in animiertes GIF exportieren.
- .NET API für animierte PNG Bilder
- Animiertes PNG aus einem Bild erstellen
- Erstellen Sie animiertes PNG aus einer mehrseitigen Tiff Datei
- Exportieren Sie animiertes PNG in animiertes GIF
.NET API für animierte PNG Bilder
Aspose bietet seine .NET Imaging API zum Erstellen oder Bearbeiten beliebter Bildformate, einschließlich animierter PNG, mit C# oder VB.NET. Wir nutzen die Funktionen von Aspose.Imaging for .NET, um animierte PNG Bilder zu erstellen oder zu exportieren. Sie können die DLL der API entweder herunterladen oder sie mit NuGet in Ihrer .NET Anwendung installieren.
PM> Install-Package Aspose.Imaging
Animiertes PNG aus einem Bild mit C# erstellen
Mit Aspose.Imaging for .NET können Sie ein animiertes PNG aus einem einseitigen Bild wie PNG erstellen, indem Sie die benutzerdefinierte Animation und Framedauer festlegen. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt.
- Laden Sie das PNG Bild mit der methode Image.Load(String) in ein RasterImage objekt.
- Legen Sie ApngOptions eigenschaften gemäß Ihren Anforderungen fest.
- Verwenden Sie die Klasse ApngImage, um das animierte PNG zu erstellen.
- Aktualisieren Sie das Gamma jedes Frames mit der methode ApngFrame.AdjustGamma(Single).
- Erstellen Sie animiertes PNG mit der methode ApngImage.Save().
Das folgende Codebeispiel zeigt, wie Sie mit C# ein animiertes PNG (APNG) aus einem PNG Bild erstellen.
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();
// ersten Rahmen hinzufügen
apngImage.AddFrame(sourceImage, FrameDuration);
// Zwischenrahmen hinzufügen
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);
}
// letzten Frame hinzufügen
apngImage.AddFrame(sourceImage, FrameDuration);
apngImage.Save();
}
}
Animiertes PNG aus mehrseitigem Tiff mit C# erstellen
Sie können auch eine mehrseitige TIFF Datei verwenden, um das animierte PNG zu erstellen, indem Sie die gewünschte Framezeit festlegen. Im Folgenden sind die Schritte zum Erstellen von animiertem PNG aus einer TIFF Datei aufgeführt.
- Laden Sie ein Tiff Bild in ein Objekt der Klasse Image.
- Speichern Sie Tiff als APNG mit der methode Image.Save(String, ImageOptionsBase).
Das folgende Codebeispiel zeigt, wie Sie mit C# animiertes PNG aus einer TIFF Datei erstellen.
// Beispiel 4. Exportieren in das APNG Dateiformat aus einem anderen nicht animierten Format
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using (Image image = Image.Load("img4.tif")) {
// Einrichten der Standard-Frame-Dauer
image.Save("img4.tif.500ms.png", new ApngOptions() { DefaultFrameTime = 500 }); // 500 ms
image.Save("img4.tif.250ms.png", new ApngOptions() { DefaultFrameTime = 250 }); // 250 ms
}
Quelle Tiff
Animiertes PNG
Exportieren Sie animiertes PNG in animiertes GIF mit C#
Sie können auch ein animiertes PNG Bild in ein entsprechendes animiertes GIF exportieren. Im Folgenden sind die Schritte zum Exportieren von APNG in GIF aufgeführt.
- Laden Sie das animierte PNG in ein Image objekt.
- Exportieren Sie APNG in GIF mit der methode Image.Save(String, GifOptions()).
Das folgende Codebeispiel zeigt, wie Sie mit C# animiertes PNG in GIF exportieren.
using System.Diagnostics;
using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.FileFormats.Apng;
using (Image image = Image.Load("elephant.png")) {
// Überprüfen des Typs des geladenen Bildes
Debug.Assert(image is ApngImage);
// Speichern Sie im gleichen Format
image.Save("elephant_same_format.png");
// Exportieren Sie in das andere animierte Format
image.Save("elephant.png.gif", new GifOptions());
}
Quelle animiertes PNG
Animiertes GIF
Fazit
In diesem Artikel haben Sie gelernt, wie Sie mit C# ein animiertes PNG aus verschiedenen Quellen erstellen. Die Schritt-für-Schritt-Anleitung und die Codebeispiele zeigten, wie Sie animiertes PNG aus einseitigem PNG und mehrseitigem TIFF erstellen und animiertes PNG mit C# in ein animiertes GIF exportieren. Weitere Informationen zum Bearbeiten von APNG Bildern finden Sie in der Dokumentation der API.