Обтравочный контур — замкнутый векторный контур, используемый для выбора части изображения, которая должна быть видимой. После создания обтравочного контура часть изображения за пределами обтравочного контура становится прозрачной или невидимой. В Adobe Photoshop техника отсечения чаще всего используется для удаления фона с изображений и фотографий. В этой статье вы узнаете, как программно создать обтравочный контур в изображениях TIFF с помощью C#. Кроме того, вы узнаете, как экспортировать изображения TIFF в формат PSD вместе с обтравочным контуром.

.NET API для создания обтравочного контура в TIFF

Aspose.Imaging for .NET — это хорошо известный API для обработки изображений, который позволяет обрабатывать и работать с широким спектром форматов изображений. Кроме того, API позволяет программно создавать пути отсечения в TIFF и передавать пути отсечения из TIFF в изображение PSD с помощью нескольких строк кода. Вы можете установить API в своем приложении .NET с помощью NuGet или загрузить его DLL здесь.

Создайте обтравочный контур в изображении TIFF с помощью С#

Для создания пути отсечения в изображении TIFF вам необходимо определить точки пути в файле TXT. Вы можете создать точки вручную или с помощью инструмента «Перо» в Photoshop. Ниже приведен пример TXT-файла, содержащего точки Безье контура отсечения, которые будут использоваться в приведенных ниже примерах.

Создав точки пути, вы можете вставить их в ресурсы пути изображения TIFF. Ниже приведено целевое изображение TIFF, которое используется в примерах.

Образец изображения в формате TIFF

В следующем примере кода показано, как создать обтравочный контур в изображении 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 } };
}

Ниже приведен скриншот полученного изображения в формате TIFF вместе с обтравочным контуром в Photoshop.

TIFF с обтравочным контуром

Экспорт TIFF с обтравочным контуром в PSD с помощью C#

Вы также можете экспортировать изображение TIFF с обтравочным контуром в изображение PSD для дальнейшей обработки в Photoshop. Это можно сделать в пару строк кода.

В следующем примере кода показано, как экспортировать изображение TIFF с обтравочным контуром в PSD с помощью C#.

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

PSD-файл

TIFF в PSD с обтравочным контуром

Вывод

В этой статье вы увидели, как программно создать обтравочный контур в изображении TIFF с помощью C#. Кроме того, вы также узнали, как экспортировать изображение TIFF в PSD вместе с контуром обрезки с помощью Aspose.Imaging for .NET API. Вы можете узнать больше об API обработки изображений Aspose, используя документацию.

Смотрите также