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

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.

Exempel på TIFF-bild

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.

TIFF med urklippsbana

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.

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

TIFF till PSD med urklippsbana

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.

Se även