Clipping Path je uzavřená vektorová cesta používaná k výběru části obrázku, která má být viditelná. Po vytvoření ořezové cesty se část obrazu mimo ořezovou cestu stane průhlednou nebo neviditelnou. V Adobe Photoshopu se k odstranění pozadí z obrázků a fotografií nejčastěji používá technika ořezové cesty. V tomto článku se dozvíte, jak vytvořit ořezovou cestu v obrázcích TIFF programově pomocí C#. Dále se dozvíte, jak exportovat obrázky TIFF do formátu PSD spolu s ořezovou cestou.
- .NET API pro vytváření ořezové cesty ve formátu TIFF
- Vytvořte ořezovou cestu v obrázku TIFF pomocí C#
- Export TIFF s ořezovou cestou do PSD pomocí C#
.NET API pro vytváření ořezové cesty ve formátu TIFF
Aspose.Imaging for .NET je známé rozhraní API pro zpracování obrázků, které umožňuje zpracovávat a pracovat s širokou škálou formátů obrázků. Kromě toho vám API umožňuje vytvořit ořezové cesty v TIFF programově a přenést ořezovou cestu z TIFF do obrázku PSD pomocí několika řádků kódu. API můžete nainstalovat do vaší .NET aplikace pomocí NuGet nebo si stáhnout jeho DLL z zde.
Vytvořte ořezovou cestu v obrázku TIFF pomocí C#
Chcete-li vytvořit ořezovou cestu v obrázku TIFF, budete muset definovat body cesty v souboru TXT. Body můžete vytvořit buď ručně, nebo pomocí nástroje Pero ve Photoshopu. Následuje ukázkový soubor TXT obsahující Bézierovy body ořezové cesty, který bude použit v příkladech níže.
Jakmile vytvoříte body cesty, můžete je vložit do zdrojů cesty obrázku TIFF. Níže je cílový obrázek TIFF, který je použit v příkladech.
Následující ukázka kódu ukazuje, jak vytvořit ořezovou cestu v obrázku Tiff.
static void Main()
{
using (var image = (TiffImage)Image.Load(@"d:\Data\SampleNoPaths.tif"))
{
image.ActiveFrame.PathResources = new List<PathResource> { new PathResource
{
BlockId = 2000, // Block Id according to Photoshop specification
Name = "My Path", // Path name
Records = CreateRecords(LoadPathPoints(@"d:\Data\PathPoints.txt")) // Create path records using coordinates
}};
image.Save(@"d:\SampleWithPaths.tif");
}
}
private static float[] LoadPathPoints(string filePath)
{
return File.ReadAllText(filePath)
.Split(new[] { " ", "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
.Select(float.Parse)
.ToArray();
}
private static List<VectorPathRecord> CreateRecords(params float[] coordinates)
{
var records = CreateBezierRecords(coordinates); // Create Bezier records using coordinates
records.Insert(0, new LengthRecord // LengthRecord required by Photoshop specification
{
IsOpen = false, // Lets create closed path
RecordCount = (ushort)records.Count // Record count in the path
});
return records;
}
private static List<VectorPathRecord> CreateBezierRecords(float[] coordinates)
{
return CoordinatesToPoints(coordinates)
.Select(CreateBezierRecord)
.ToList();
}
private static IEnumerable<PointF> CoordinatesToPoints(float[] coordinates)
{
for (var index = 0; index < coordinates.Length; index += 2)
yield return new PointF(coordinates[index], coordinates[index + 1]);
}
private static VectorPathRecord CreateBezierRecord(PointF point)
{
return new BezierKnotRecord { PathPoints = new[] { point, point, point } };
}
Následuje snímek obrazovky výsledného obrázku TIFF spolu s ořezovou cestou ve Photoshopu.
Export TIFF s ořezovou cestou do PSD pomocí C#
Můžete také exportovat obrázek TIFF s ořezovou cestou do obrázku PSD pro další zpracování ve Photoshopu. To lze provést v několika řádcích kódu.
- Načtěte obrázek TIFF pomocí metody Image.Load(String).
- Exportujte TIFF do PSD pomocí metody Image.Save(String, PsdOptions).
Následující ukázka kódu ukazuje, jak exportovat obrázek TIFF s ořezovou cestou do PSD pomocí C#.
using (var image = Image.Load(@"d:\Data\SampleWithPaths.tif"))
{
image.Save(@"d:\Data\SampleWithPaths.psd", new PsdOptions());
}
Soubor PSD
Závěr
V tomto článku jste viděli, jak vytvořit ořezovou cestu v obrázku TIFF programově pomocí C#. Dále jste se také naučili, jak exportovat obrázek TIFF do PSD spolu s ořezovou cestou pomocí Aspose.Imaging for .NET API. Další informace o rozhraní API pro zpracování obrázků Aspose můžete prozkoumat pomocí dokumentace.