Clipping Path הוא נתיב וקטור סגור המשמש לבחירת חלק מהתמונה שאמור להיות גלוי. לאחר יצירת נתיב הגזירה, החלק של התמונה שמחוץ לנתיב הגזירה הופך לשקוף או בלתי נראה. ב-Adobe Photoshop, טכניקת נתיב הגזירה משמשת לרוב להסרת הרקע מהתמונות והתצלומים. במאמר זה תלמדו כיצד ליצור נתיב גזירה בתמונות TIFF באופן פרוגרמטי באמצעות C#. יתר על כן, תלמדו לדעת כיצד לייצא תמונות TIFF לפורמט PSD יחד עם נתיב הגזירה.
- NET API ליצירת נתיב גזירה ב-TIFF
- צור נתיב גזירה בתמונת TIFF באמצעות C#
- ייצוא TIFF עם נתיב חיתוך ל-PSD באמצעות C#
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.
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 עם נתיב חיתוך ל-PSD באמצעות C#
אתה יכול גם לייצא את תמונת TIFF בעלת נתיב גזירה לתמונת PSD לעיבוד נוסף בפוטושופ. ניתן לעשות זאת בכמה שורות קוד.
- טען את תמונת 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 עבור .NET API. אתה יכול לחקור יותר על API לעיבוד תמונה של Aspose באמצעות תיעוד.