Izvoz PSD-a na GIF je uobičajeni handoff za web grafike, e-mail imovine i lagane animacije. sa Aspose.PSD za .NET, možete pretvoriti PSD u static Gif u jednom pozivu, a kada PSD sadrži časovnu liniju za animaciju, možeš izvoziti animirani gif izravno iz te vremenske linije.
Ovaj članak prikazuje oba scenarija s kompletnim, inline kodom.
Preduzeća
- .NET 6 ili noviji (ili .Net Framework 4.6.2+)
- Slijedeći paket:
Aspose.PSD
dotnet add package Aspose.PSD
Konvertiranje PSD-a u statski GIF
Korištenje Image.Load
Za otvaranje PSD-a, upućuje se na PsdImage
i sačuvati s GifOptions
To pretvara PSD u jedinstvenom GIF-u.
// 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));
}
}
primjedbe
- Statski izvoz ne zahtijeva vremensku liniju u PSD-u.
- Ako vam je potrebna druga veličina ili izgled datoteke, prije izvoza optimizirajte izvornu umjetnost (flat, pojednostaviti boje).
Konvertirati timeline-based PSD u animirani GIF
Ako vaš PSD sadrži vremensku liniju animacije, možete je izvoziti kao animirani GIF pomoću API-ja vremenske linije.
// 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));
}
}
}
}
primjedbe
- Ovaj put poštuje redoslijed i odgode po okvirima definirane u vremenskoj liniji PSD-a.
- Ako vaš PSD nema podatke o vremenskoj liniji, kod se vraća na GIF jedinstvenog okvira.
Opcionalna batch konverzija
Sljedeća utiliteta pretvara svaku PSD u mapu u GIF. Animirani PSD-ovi izvoze putem vremenske linije kada su dostupni, drugi izvoziti kao statski Gifovi.
// 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}");
}
}
}
}
Pozovite ga od Main
:
// inside Main
// BatchPsdToGif.Run(@"C:\in-psd", @"C:\out-gif");
Najbolje prakse
- Boja ograničenja: GIF koristi indeksiranu paletu s do 256 boja po okvirima. za složenu umjetničku radnju, razmislite o pojednostavnjenju slojeva ili boje u PSD-u za bolje i manje datoteke.
- Transparentnost: GIF podržava 1-bitnu transparentnost.Ako vam je potrebna potpuna alfa, koristite PNG za statske slike i API za animaciju u kompatibilnim okruženjima.
- Veličina datoteke: Animirani GIF-ovi mogu biti veliki.Smanjite broj okvir, veličinu okvir ili detalje umjetnosti kako biste održali veličine praktične.
- Verifikacija: Uvijek provjerite izlazak u ciljanim okruženjima kako biste potvrdili vrijeme, kretanje i ponašanje palete.
S tim uzorcima možete automatizirati i statske i animirane PSD-ove na GIF izvoze unutar vaših .NET radnih tokova.