Clipping Path är en sluten vektorbana som används för att välja en del av bilden som ska vara synlig. När urklippsbanan väl har skapats blir delen av bilden utanför urklippsbanan genomskinlig eller osynlig. I Adobe Photoshop används urklippsbanan oftast för att ta bort bakgrunden från bilderna och fotografierna. I den här artikeln kommer du att lära dig hur du skapar en urklippsbana i TIFF-bilder programmatiskt med C#. Dessutom kommer du att lära dig hur du exporterar TIFF-bilder till PSD-format tillsammans med urklippsbanan.
- .NET API för att skapa urklippsbana i TIFF
- Skapa urklippsbana i TIFF-bild med C#
- Exportera TIFF med urklippsbana till PSD med C#
.NET API för att skapa urklippsbana i TIFF
Aspose.Imaging for .NET är ett välkänt bildbehandlings-API som låter dig bearbeta och arbeta med ett brett utbud av bildformat. Dessutom låter API:et dig skapa urklippsbanorna i TIFF programmatiskt och överföra urklippsbanan från TIFF till PSD-bilden med några rader kod. Du kan installera API:t i din .NET-applikation med NuGet eller ladda ner dess DLL från här.
Skapa urklippsbana i TIFF-bild med C#
För att skapa urklippsbanan i en TIFF-bild måste du definiera punkterna för sökvägen i en TXT-fil. Du kan antingen skapa punkterna manuellt eller använda pennverktyget i Photoshop. Följande är ett exempel på en TXT-fil som innehåller Bezier-punkterna för en urklippsbana som kommer att användas i exemplen nedan.
När du har skapat sökvägspunkterna kan du infoga dem i sökvägsresurserna i TIFF-bilden. Nedan är den riktade TIFF-bilden som används i exemplen.
Följande kodexempel visar hur man skapar en urklippsbana i en Tiff-bild.
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 } };
}
Följande är skärmdumpen av den resulterande TIFF-bilden tillsammans med urklippsbanan i Photoshop.
Exportera TIFF med urklippsbana till PSD med C#
Du kan också exportera TIFF-bilden med en urklippsbana till en PSD-bild för vidare bearbetning i Photoshop. Detta kan göras i ett par rader kod.
- Ladda TIFF-bilden med metoden Image.Load(String).
- Exportera TIFF till PSD med metoden Image.Save(String, PsdOptions).
Följande kodexempel visar hur man exporterar en TIFF-bild med en urklippsbana till PSD med C#.
using (var image = Image.Load(@"d:\Data\SampleWithPaths.tif"))
{
image.Save(@"d:\Data\SampleWithPaths.psd", new PsdOptions());
}
PSD-fil
Slutsats
I den här artikeln har du sett hur du skapar en urklippsbana i en TIFF-bild programmatiskt med C#. Dessutom har du också lärt dig hur du exporterar en TIFF-bild till PSD tillsammans med urklippsbanan med Aspose.Imaging för .NET API. Du kan utforska mer om Asposes bildbehandlings-API med hjälp av dokumentationen.