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 PsdImagei salvar amb GifOptionsAixò 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.

More in this category