Clipping Path הוא נתיב וקטור סגור המשמש לבחירת חלק מהתמונה שאמור להיות גלוי. לאחר יצירת נתיב הגזירה, החלק של התמונה שמחוץ לנתיב הגזירה הופך לשקוף או בלתי נראה. ב-Adobe Photoshop, טכניקת נתיב הגזירה משמשת לרוב להסרת הרקע מהתמונות והתצלומים. במאמר זה תלמדו כיצד ליצור נתיב גזירה בתמונות TIFF באופן פרוגרמטי באמצעות C#. יתר על כן, תלמדו לדעת כיצד לייצא תמונות TIFF לפורמט PSD יחד עם נתיב הגזירה.

NET API ליצירת נתיב גזירה ב-TIFF

Aspose.Imaging for .NET הוא API לעיבוד תמונה ידוע המאפשר לך לעבד ולעבוד עם מגוון רחב של פורמטים של תמונה. בנוסף, ה-API מאפשר ליצור את נתיבי הגזירה ב-TIFF באופן תוכנתי ולהעביר את מסלול הגזירה מ-TIFF לתמונת ה-PSD עם כמה שורות קוד. אתה יכול להתקין את ה-API בתוך יישום NET שלך באמצעות NuGet או להוריד את ה-DLL שלו מכאן.

צור נתיב גזירה בתמונת TIFF באמצעות C#

ליצירת נתיב הגזירה בתמונת TIFF, תצטרך להגדיר את נקודות הנתיב בקובץ TXT. אתה יכול ליצור את הנקודות באופן ידני או באמצעות כלי העט בפוטושופ. להלן קובץ 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 שנוצרה יחד עם נתיב הגזירה בפוטושופ.

TIFF עם נתיב גזירה

ייצוא TIFF עם נתיב חיתוך ל-PSD באמצעות C#

אתה יכול גם לייצא את תמונת TIFF בעלת נתיב גזירה לתמונת PSD לעיבוד נוסף בפוטושופ. ניתן לעשות זאת בכמה שורות קוד.

דגימת הקוד הבאה מראה כיצד לייצא תמונת 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 עבור .NET API. אתה יכול לחקור יותר על API לעיבוד תמונה של Aspose באמצעות תיעוד.

ראה גם