Clipping Path یک مسیر برداری بسته است که برای انتخاب بخشی از تصویر که باید قابل مشاهده باشد استفاده می شود. هنگامی که مسیر برش ایجاد می شود، بخشی از تصویر خارج از مسیر برش شفاف یا نامرئی می شود. در Adobe Photoshop، تکنیک Clipping path اغلب برای حذف پسزمینه از تصاویر و عکسها استفاده میشود. در این مقاله، نحوه ایجاد یک مسیر برش در تصاویر TIFF را به صورت برنامه نویسی با استفاده از سی شارپ یاد خواهید گرفت. علاوه بر این، با نحوه صادرات تصاویر TIFF به فرمت PSD همراه با مسیر برش آشنا خواهید شد.
- NET API برای ایجاد مسیر برش در TIFF
- ایجاد Clipping Path در تصویر TIFF با استفاده از C#
- صادرات TIFF با Clipping Path به PSD با استفاده از C#
NET API برای ایجاد مسیر برش در TIFF
Aspose.Imaging for .NET یک API پردازش تصویر شناخته شده است که به شما امکان پردازش و کار با طیف گسترده ای از فرمت های تصویر را می دهد. علاوه بر این، API به شما امکان می دهد مسیرهای برش را در TIFF به صورت برنامه ریزی شده ایجاد کنید و مسیر برش را از TIFF به تصویر PSD با چند خط کد منتقل کنید. میتوانید API را در برنامه داتنت خود با استفاده از NuGet نصب کنید یا DLL آن را از اینجا دانلود کنید.
ایجاد Clipping Path در تصویر TIFF با استفاده از C#
برای ایجاد مسیر برش در یک تصویر TIFF، باید نقاط مسیر را در یک فایل TXT تعریف کنید. می توانید نقاط را به صورت دستی یا با استفاده از ابزار Pen در فتوشاپ ایجاد کنید. در زیر یک نمونه فایل TXT حاوی نقاط Bezier یک مسیر برش است که در مثال های زیر استفاده خواهد شد.
هنگامی که نقاط مسیر را ایجاد کردید، می توانید آنها را در Path Resources تصویر 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 حاصل به همراه مسیر برش در فتوشاپ است.
صادرات TIFF با Clipping Path به PSD با استفاده از C#
همچنین میتوانید تصویر TIFF را که مسیر برش دارد، به یک تصویر PSD برای پردازش بیشتر در فتوشاپ صادر کنید. این را می توان در چند خط کد انجام داد.
- تصویر TIFF را با استفاده از روش Image.Load(String) بارگیری کنید.
- TIFF را با استفاده از روش Image.Save(String, PsdOptions) به PSD صادر کنید.
نمونه کد زیر نشان میدهد که چگونه میتوان یک تصویر TIFF را با یک مسیر برش به PSD با استفاده از C# صادر کرد.
using (var image = Image.Load(@"d:\Data\SampleWithPaths.tif"))
{
image.Save(@"d:\Data\SampleWithPaths.psd", new PsdOptions());
}
فایل PSD
نتیجه
در این مقاله نحوه ایجاد یک مسیر کلیپ در یک تصویر TIFF را به صورت برنامه نویسی با استفاده از سی شارپ مشاهده کرده اید. علاوه بر این، شما همچنین یاد گرفتهاید که چگونه با استفاده از Aspose.Imaging برای NET API یک تصویر TIFF را به همراه مسیر برش به PSD صادر کنید. میتوانید با استفاده از مستندات درباره API پردازش تصویر Aspose بیشتر کاوش کنید.