Clipping Path é um caminho de vetor fechado usado para selecionar uma parte da imagem que deve ser visível. Uma vez que o traçado de recorte é criado, a parte da imagem fora do traçado de recorte torna-se transparente ou invisível. No Adobe Photoshop, a técnica de traçado de recorte é mais frequentemente usada para remover o fundo das imagens e fotografias. Neste artigo, você aprenderá como criar um caminho de recorte em imagens TIFF programaticamente usando C#. Além disso, você saberá como exportar imagens TIFF para o formato PSD junto com o caminho de recorte.

API .NET para criar caminho de recorte em TIFF

Aspose.Imaging for .NET é uma API de processamento de imagem bem conhecida que permite processar e trabalhar com uma ampla variedade de formatos de imagem. Além disso, a API permite que você crie os caminhos de recorte em TIFF programaticamente e transfira o caminho de recorte do TIFF para a imagem PSD com algumas linhas de código. Você pode instalar a API em seu aplicativo .NET usando NuGet ou baixar sua DLL aqui.

Criar caminho de recorte na imagem TIFF usando C#

Para criar o caminho de recorte em uma imagem TIFF, você precisaria definir os pontos do caminho em um arquivo TXT. Você pode criar os pontos manualmente ou usando a ferramenta Caneta no Photoshop. O seguinte é um arquivo TXT de amostra contendo os pontos Bezier de um caminho de recorte que será usado nos exemplos abaixo.

Depois de criar os pontos de caminho, você pode inseri-los nos Recursos de caminho da imagem TIFF. Abaixo está a imagem TIFF de destino que está sendo usada nos exemplos.

Exemplo de imagem TIFF

O exemplo de código a seguir mostra como criar um caminho de recorte em uma imagem 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 } };
}

A seguir está a captura de tela da imagem TIFF resultante junto com o caminho de recorte no Photoshop.

TIFF com Traçado de Recorte

Exporte TIFF com Clipping Path para PSD usando C#

Você também pode exportar a imagem TIFF com um traçado de recorte para uma imagem PSD para processamento adicional no Photoshop. Isso pode ser feito em algumas linhas de código.

O exemplo de código a seguir mostra como exportar uma imagem TIFF com um caminho de recorte para PSD usando C#.

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

Arquivo PSD

TIFF para PSD com caminho de recorte

Conclusão

Neste artigo, você viu como criar um caminho de recorte em uma imagem TIFF programaticamente usando C#. Além disso, você também aprendeu como exportar uma imagem TIFF para PSD junto com o caminho de recorte usando Aspose.Imaging for .NET API. Você pode explorar mais sobre a API de processamento de imagem do Aspose usando a documentação.

Veja também