Clipping Path to zamknięta ścieżka wektorowa używana do zaznaczenia części obrazu, która powinna być widoczna. Po utworzeniu ścieżki przycinania część obrazu poza ścieżką przycinania staje się przezroczysta lub niewidoczna. W programie Adobe Photoshop technika wycinania ścieżki jest najczęściej używana do usuwania tła z obrazów i fotografii. W tym artykule dowiesz się, jak programowo utworzyć ścieżkę przycinającą w obrazach TIFF przy użyciu języka C#. Ponadto dowiesz się, jak eksportować obrazy TIFF do formatu PSD wraz ze ścieżką wycinania.

.NET API do tworzenia ścieżki przycinającej w formacie TIFF

Aspose.Imaging for .NET to dobrze znany interfejs API do przetwarzania obrazów, który umożliwia przetwarzanie i pracę z szeroką gamą formatów obrazów. Ponadto interfejs API umożliwia programowe tworzenie ścieżek wycinania w formacie TIFF i przesyłanie ścieżek wycinania z formatu TIFF do obrazu PSD za pomocą kilku linii kodu. Możesz zainstalować interfejs API w swojej aplikacji .NET za pomocą NuGet lub pobrać jego bibliotekę DLL z tutaj.

Utwórz ścieżkę przycinającą w obrazie TIFF za pomocą C#

Aby utworzyć ścieżkę przycinającą w obrazie TIFF, należy zdefiniować punkty ścieżki w pliku TXT. Punkty można utworzyć ręcznie lub za pomocą narzędzia Pióro w programie Photoshop. Poniżej znajduje się przykładowy plik TXT zawierający punkty Beziera ścieżki przycinającej, które zostaną użyte w poniższych przykładach.

Po utworzeniu punktów ścieżki można je wstawić do zasobów ścieżki obrazu TIFF. Poniżej znajduje się docelowy obraz TIFF, który jest używany w przykładach.

Przykładowy obraz TIFF

Poniższy przykładowy kod pokazuje, jak utworzyć ścieżkę przycinającą w obrazie 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 } };
}

Poniżej znajduje się zrzut ekranu wynikowego obrazu TIFF wraz ze ścieżką przycinającą w programie Photoshop.

TIFF ze ścieżką przycinającą

Eksportuj TIFF ze ścieżką przycinającą do PSD za pomocą C#

Możesz także wyeksportować obraz TIFF ze ścieżką przycinania do obrazu PSD w celu dalszego przetwarzania w programie Photoshop. Można to zrobić w kilku liniach kodu.

Poniższy przykładowy kod pokazuje, jak wyeksportować obraz TIFF ze ścieżką przycinającą do pliku PSD przy użyciu języka C#.

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

Plik PSD

TIFF do PSD ze ścieżką przycinającą

Wniosek

W tym artykule pokazano, jak programowo utworzyć ścieżkę przycinającą w obrazie TIFF przy użyciu języka C#. Ponadto nauczyłeś się również eksportować obraz TIFF do PSD wraz ze ścieżką przycinania za pomocą Aspose.Imaging for .NET API. Możesz dowiedzieć się więcej o interfejsie API przetwarzania obrazu Aspose, korzystając z dokumentacji.

Zobacz też