Exportar PSD a GIF és un malbaratament comú per a les gràfiques web, els actius de correu electrònic i les animacions lleugeres. amb Aspose.PSD per .NET, es pot convertir un PSD en un GIF estàtic en una sola trucada, i quan un PSD conté una línia de temps d’animació, pot exportar un gIF animat* directament des de l’itinerari.
Aquest article mostra ambdós escenaris amb codi complet, en línia.
Prerequisits
- .NET 6 o posterior (o .Net Framework 4.6.2+)
- El paquet de NuGet:
Aspose.PSD
dotnet add package Aspose.PSD
Convertir PSD a GIF estàtic
Use Image.Load
per obrir el PSC, a PsdImage
i salvar amb GifOptions
Això fa que el PSD es converteixi en un GIF single-frame.
// File: Program.cs
using System;
using System.IO;
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.ImageOptions;
class Program
{
static void Main()
{
var inputPsd = "input.psd";
var outputGif = "output-static.gif";
if (!File.Exists(inputPsd))
{
Console.WriteLine("Input PSD not found.");
return;
}
using (var psd = (PsdImage)Image.Load(inputPsd))
{
// Export as a single-frame GIF
var gifOptions = new GifOptions();
psd.Save(outputGif, gifOptions);
}
Console.WriteLine("Saved: " + Path.GetFullPath(outputGif));
}
}
Notícies
- L’exportació estàtica no requereix un horari en el PSD.
- Si necessita una diferent mida o aparença del fitxer, optimitza l’art de font (flat, simplifica els colors) abans d’exportar.
Convertir el temps basat en PSD a GIF animat
Si el seu PSD conté una línia de temps d’animació, pot exportar-la com un GIF animat utilitzant l’API de la línia del temps.
// File: Program.cs
using System;
using System.IO;
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.ImageOptions;
class Program
{
static void Main()
{
var inputPsd = "animated.psd";
var outputAgif = "output-animated.gif";
if (!File.Exists(inputPsd))
{
Console.WriteLine("Input PSD not found.");
return;
}
using (var psd = (PsdImage)Image.Load(inputPsd))
{
if (psd.Timeline != null)
{
// Export PSD timeline as animated GIF
var gifOptions = new GifOptions();
psd.Timeline.Save(outputAgif, gifOptions);
Console.WriteLine("Saved animated GIF: " + Path.GetFullPath(outputAgif));
}
else
{
// Fallback to static export if the PSD has no timeline
var gifOptions = new GifOptions();
psd.Save(outputAgif, gifOptions);
Console.WriteLine("PSD has no timeline. Saved static GIF: " + Path.GetFullPath(outputAgif));
}
}
}
}
Notícies
- Aquest camí respecta l’ordre marc i els retards per quadre definits en la línia de temps del PSD.
- Si el seu PSD no té dades de rellotge, el codi cau enrere a un GIF d’un quadre.
Conversió de batxillerat opcional
La utilitat següent converteix cada PSD en una carpeta en GIF. Els animats PSDs s’exporten a través de la línia de temps quan estan disponibles, d’altres exporten com a gifs estàtics.
// File: BatchPsdToGif.cs
using System;
using System.IO;
using Aspose.PSD;
using Aspose.PSD.FileFormats.Psd;
using Aspose.PSD.ImageOptions;
public static class BatchPsdToGif
{
public static void Run(string inputDir, string outputDir)
{
Directory.CreateDirectory(outputDir);
var psdFiles = Directory.GetFiles(inputDir, "*.psd", SearchOption.AllDirectories);
foreach (var psdPath in psdFiles)
{
var rel = Path.GetRelativePath(inputDir, psdPath);
var outFn = Path.ChangeExtension(rel, ".gif");
var outFp = Path.Combine(outputDir, outFn);
Directory.CreateDirectory(Path.GetDirectoryName(outFp) ?? outputDir);
try
{
using var psd = (PsdImage)Image.Load(psdPath);
var gifOptions = new GifOptions();
if (psd.Timeline != null)
{
psd.Timeline.Save(outFp, gifOptions);
}
else
{
psd.Save(outFp, gifOptions);
}
Console.WriteLine($"OK {rel} -> {outFn}");
}
catch (Exception ex)
{
Console.WriteLine($"ERR {rel}: {ex.Message}");
}
}
}
}
L’anomenem de Main
:
// inside Main
// BatchPsdToGif.Run(@"C:\in-psd", @"C:\out-gif");
Les millors pràctiques
- Limites de colors: GIF utilitza una paleta indexada amb fins a 256 colors per quadre.Per a obres d’art complexes, considereu simplificar les cames o els colors en el PSD per a fitxers millors i més petits.
- Transparència: GIF dóna suport a la transparència d'1 bits.Si necessiteu un alfa complet, utilitzeu PNG per a imatges estàtiques i APNG en animació en entorns compatibles.
- Maior de fitxer: Els GIFs animats poden ser grans. Reduir el nombre de quadres, la mida del quadre o el detall de l’art per mantenir les dimensions pràctiques.
- Verificació: Sempre preveure la producció en els entorns objectius per confirmar el comportament de timing, gir i paleta.
Amb aquests patrons, vostè pot automatitzar tant el PSD estàtic i animat a les exportacions GIF dins dels seus fluxos de treball .NET.