Clipping Path è un percorso vettoriale chiuso utilizzato per selezionare una parte dell’immagine che dovrebbe essere visibile. Una volta creato il tracciato di ritaglio, la parte dell’immagine al di fuori del tracciato di ritaglio diventa trasparente o invisibile. In Adobe Photoshop, la tecnica del tracciato di ritaglio viene spesso utilizzata per rimuovere lo sfondo dalle immagini e dalle fotografie. In questo articolo imparerai come creare un tracciato di ritaglio nelle immagini TIFF a livello di codice usando C#. Inoltre, imparerai come esportare immagini TIFF in formato PSD insieme al percorso di ritaglio.

API .NET per la creazione di tracciati di ritaglio in TIFF

Aspose.Imaging for .NET è una nota API di elaborazione delle immagini che consente di elaborare e lavorare con un’ampia gamma di formati di immagine. Inoltre, l’API consente di creare i tracciati di ritaglio in TIFF a livello di codice e di trasferire il tracciato di ritaglio da TIFF all’immagine PSD con poche righe di codice. Puoi installare l’API all’interno della tua applicazione .NET utilizzando NuGet o scaricare la sua DLL da qui.

Crea un tracciato di ritaglio nell’immagine TIFF usando C#

Per creare il percorso di ritaglio in un’immagine TIFF, è necessario definire i punti del percorso in un file TXT. Puoi creare i punti manualmente o usando lo strumento Penna in Photoshop. Quello che segue è un file TXT di esempio contenente i punti Bezier di un tracciato di ritaglio che verrà utilizzato negli esempi seguenti.

Una volta creati i punti del percorso, è possibile inserirli nelle Risorse del percorso dell’immagine TIFF. Di seguito è riportata l’immagine TIFF di destinazione utilizzata negli esempi.

Esempio di immagine TIFF

Nell’esempio di codice seguente viene illustrato come creare un tracciato di ritaglio in un’immagine 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 } };
}

Quello che segue è lo screenshot dell’immagine TIFF risultante insieme al tracciato di ritaglio in Photoshop.

TIFF con tracciato di ritaglio

Esporta TIFF con tracciato di ritaglio in PSD usando C#

Puoi anche esportare l’immagine TIFF con un tracciato di ritaglio in un’immagine PSD per un’ulteriore elaborazione in Photoshop. Questo può essere fatto in un paio di righe di codice.

L’esempio di codice seguente mostra come esportare un’immagine TIFF con un tracciato di ritaglio in PSD usando C#.

using (var image = Image.Load(@"d:\Data\SampleWithPaths.tif"))
{
    image.Save(@"d:\Data\SampleWithPaths.psd", new PsdOptions());
}

File PSD

TIFF in PSD con tracciato di ritaglio

Conclusione

In questo articolo è stato illustrato come creare un tracciato di ritaglio in un’immagine TIFF a livello di codice usando C#. Inoltre, hai anche imparato come esportare un’immagine TIFF in PSD insieme al tracciato di ritaglio usando Aspose.Imaging per .NET API. Puoi esplorare di più sull’API di elaborazione delle immagini di Aspose utilizzando la documentazione.

Guarda anche