Обтравочный контур — замкнутый векторный контур, используемый для выбора части изображения, которая должна быть видимой. После создания обтравочного контура часть изображения за пределами обтравочного контура становится прозрачной или невидимой. В Adobe Photoshop техника отсечения чаще всего используется для удаления фона с изображений и фотографий. В этой статье вы узнаете, как программно создать обтравочный контур в изображениях TIFF с помощью C#. Кроме того, вы узнаете, как экспортировать изображения TIFF в формат PSD вместе с обтравочным контуром.
- .NET API для создания обтравочного контура в TIFF
- Создайте обтравочный контур в изображении TIFF с помощью С#
- Экспорт TIFF с обтравочным контуром в PSD с помощью C#
.NET API для создания обтравочного контура в TIFF
Aspose.Imaging for .NET — это хорошо известный API для обработки изображений, который позволяет обрабатывать и работать с широким спектром форматов изображений. Кроме того, API позволяет программно создавать пути отсечения в TIFF и передавать пути отсечения из TIFF в изображение PSD с помощью нескольких строк кода. Вы можете установить API в своем приложении .NET с помощью NuGet или загрузить его DLL здесь.
Создайте обтравочный контур в изображении TIFF с помощью С#
Для создания пути отсечения в изображении TIFF вам необходимо определить точки пути в файле TXT. Вы можете создать точки вручную или с помощью инструмента «Перо» в Photoshop. Ниже приведен пример TXT-файла, содержащего точки Безье контура отсечения, которые будут использоваться в приведенных ниже примерах.
Создав точки пути, вы можете вставить их в ресурсы пути изображения 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 с обтравочным контуром в PSD с помощью C#
Вы также можете экспортировать изображение TIFF с обтравочным контуром в изображение PSD для дальнейшей обработки в Photoshop. Это можно сделать в пару строк кода.
- Загрузите изображение TIFF, используя метод Image.Load(String).
- Экспортируйте TIFF в PSD, используя метод Image.Save(String, PsdOptions).
В следующем примере кода показано, как экспортировать изображение TIFF с обтравочным контуром в PSD с помощью C#.
using (var image = Image.Load(@"d:\Data\SampleWithPaths.tif"))
{
image.Save(@"d:\Data\SampleWithPaths.psd", new PsdOptions());
}
PSD-файл
Вывод
В этой статье вы увидели, как программно создать обтравочный контур в изображении TIFF с помощью C#. Кроме того, вы также узнали, как экспортировать изображение TIFF в PSD вместе с контуром обрезки с помощью Aspose.Imaging for .NET API. Вы можете узнать больше об API обработки изображений Aspose, используя документацию.