Beschneidungspfad ist ein geschlossener Vektorpfad, der verwendet wird, um einen Teil des Bildes auszuwählen, der sichtbar sein soll. Sobald der Beschneidungspfad erstellt ist, wird der Teil des Bildes außerhalb des Beschneidungspfads transparent oder unsichtbar. In Adobe Photoshop wird die Beschneidungspfadtechnik am häufigsten verwendet, um den Hintergrund von den Bildern und Fotografien zu entfernen. In diesem Artikel erfahren Sie, wie Sie mithilfe von C# programmgesteuert einen Beschneidungspfad in TIFF Bildern erstellen. Außerdem erfahren Sie, wie Sie TIFF Bilder zusammen mit dem Beschneidungspfad in das PSD Format exportieren.

.NET API zum Erstellen von Beschneidungspfaden in TIFF

Aspose.Imaging for .NET ist eine bekannte Bildverarbeitungs-API, mit der Sie eine Vielzahl von Bildformaten verarbeiten und damit arbeiten können. Darüber hinaus können Sie mit der API die Beschneidungspfade in TIFF programmgesteuert erstellen und den Beschneidungspfad mit wenigen Codezeilen aus TIFF in das PSD Bild übertragen. Sie können die API in Ihrer .NET Anwendung mit NuGet installieren oder die DLL hier herunterladen.

Erstellen Sie einen Beschneidungspfad in einem TIFF Bild mit C#

Um den Beschneidungspfad in einem TIFF Bild zu erstellen, müssten Sie die Punkte des Pfads in einer TXT Datei definieren. Sie können die Punkte entweder manuell erstellen oder das Zeichenstift-Werkzeug in Photoshop verwenden. Das Folgende ist eine Beispiel-TXT Datei, die die Bezier-Punkte eines Beschneidungspfads enthält, der in den folgenden Beispielen verwendet wird.

Nachdem Sie die Pfadpunkte erstellt haben, können Sie sie in die Pfadressourcen des TIFF Bilds einfügen. Unten ist das Ziel-TIFF Bild, das in den Beispielen verwendet wird.

Beispiel-TIFF Bild

Das folgende Codebeispiel zeigt, wie Sie einen Beschneidungspfad in einem TIFF Bild erstellen.

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 } };
}

Das Folgende ist der Screenshot des resultierenden TIFF Bildes zusammen mit dem Beschneidungspfad in Photoshop.

TIFF mit Beschneidungspfad

Exportieren Sie TIFF mit Beschneidungspfad in PSD mit C#

Sie können das TIFF Bild mit einem Beschneidungspfad auch zur weiteren Verarbeitung in Photoshop in ein PSD Bild exportieren. Dies kann in ein paar Codezeilen erledigt werden.

Das folgende Codebeispiel zeigt, wie ein TIFF Bild mit einem Beschneidungspfad mit C# in PSD exportiert wird.

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

PSD Datei

TIFF zu PSD mit Beschneidungspfad

Fazit

In diesem Artikel haben Sie gesehen, wie Sie mit C# programmgesteuert einen Beschneidungspfad in einem TIFF Bild erstellen. Darüber hinaus haben Sie auch gelernt, wie Sie ein TIFF Bild zusammen mit dem Beschneidungspfad mit Aspose.Imaging for .NET API in PSD exportieren. Weitere Informationen zur Bildverarbeitungs-API von Aspose finden Sie in der Dokumentation.

Siehe auch