مسار القطع هو مسار متجه مغلق يستخدم لتحديد جزء من الصورة يجب أن يكون مرئيًا. بمجرد إنشاء مسار القطع ، يصبح جزء الصورة خارج مسار القطع شفافًا أو غير مرئي. في Adobe Photoshop ، غالبًا ما يتم استخدام تقنية مسار القطع لإزالة الخلفية من الصور والصور الفوتوغرافية. في هذه المقالة ، ستتعلم كيفية إنشاء مسار قطع في صور TIFF برمجيًا باستخدام C#. علاوة على ذلك ، ستعرف كيفية تصدير صور TIFF إلى تنسيق PSD جنبًا إلى جنب مع مسار القطع.

.NET API لإنشاء مسار القطع في TIFF

Aspose.Imaging for .NET هي واجهة برمجة تطبيقات معالجة صور مشهورة تسمح لك بمعالجة مجموعة كبيرة من تنسيقات الصور والعمل عليها. بالإضافة إلى ذلك ، تتيح لك واجهة برمجة التطبيقات إنشاء مسارات القطع في TIFF برمجيًا ونقل مسار القطع من TIFF إلى صورة PSD ببضعة أسطر من التعليمات البرمجية. يمكنك تثبيت API داخل تطبيق .NET الخاص بك باستخدام NuGet أو تنزيل DLL الخاص به من هنا.

إنشاء مسار قطع في صورة TIFF باستخدام C#

لإنشاء مسار القطع في صورة TIFF ، ستحتاج إلى تحديد نقاط المسار في ملف TXT. يمكنك إما إنشاء النقاط يدويًا أو باستخدام أداة Pen في Photoshop. فيما يلي نموذج لملف TXT يحتوي على نقاط Bezier لمسار القطع الذي سيتم استخدامه في الأمثلة أدناه.

بمجرد إنشاء نقاط المسار ، يمكنك إدراجها في موارد المسار لصورة 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. يمكنك استكشاف المزيد حول واجهة برمجة تطبيقات معالجة الصور في Aspose باستخدام التوثيق.

أنظر أيضا