במאמר זה תלמדו כיצד למצוא שכבות ולעדכן את הטקסט או התמונה של השכבה בתוך קבצי ה-PSD של Photoshop באופן דינמי באמצעות C# .NET.

PSD הוא פורמט ברירת המחדל המשמש את Adobe Photoshop לשמירת המסמכים שלה במבנה רב-שכבתי שבו כל שכבה מכילה את הטקסט, התמונות, האובייקטים הגרפיים ושאר האלמנטים הנתמכים. יכול להיות המקרה כאשר יש לך תבנית PSD ואתה צריך ליצור מספר תמונות שנוצרו על ידי אכלוס שכבות הטקסט והתמונה בתוך התבנית. דוגמה לתרחיש כזה היא יצירת כרטיסי עובדים בתוך ארגון. על מנת להפוך תהליך זה לאוטומטי, אני אראה לך כיצד:

ספריית C# לאיתור ועדכון שכבות PSD

Aspose.PSD for .NET מאפשר יצירה ושינוי של קובצי PSD מבלי להתקין את Adobe Photoshop או Illustrator. ה-API יכול להיות שימושי בתרחיש שבו אתה צריך לעדכן שכבות PSD באופן דינמי באמצעות C# או VB.NET. אתה יכול להתקין את ה-API באמצעות NuGet Package Manager או להוריד ולהתייחס ל-DLLs שלו באופן ידני.

מצא ועדכן שכבות טקסט בקובצי PSD באמצעות C#

Aspose.PSD עבור NET מאפשר לך למצוא את השכבה הרצויה בקבצי PSD באמצעות שם השכבה. לאחר שתמצא את השכבה, תוכל לעדכן את התוכן שלה. להלן השלבים לאיתור ועדכון שכבת טקסט בקובץ PSD.

  • צור מופע של המחלקה PsdImage ואתחול אותו עם הנתיב של קובץ ה-PSD.
  • גש לשכבות ב-PSD באמצעות המאפיין PsdImage.Layers.
  • התאם את שם התצוגה של כל שכבה כדי להכניס את השכבה הרצויה לאובייקט TextLayer.
  • עדכן את הטקסט באמצעות השיטה TextLayer.UpdateText(String).
  • שמור את התמונה המעודכנת בשיטת PsdImage.Save(String).

דוגמת הקוד הבאה מראה כיצד למצוא ולעדכן את שכבת הטקסט בקובץ ה-PSD באמצעות C#.

// טען קובץ PSD
using (PsdImage image = (PsdImage)Image.Load(@"template.psd"))
{
	// מצא שכבה באמצעות שם השכבה
	var layerToUpdateText = (TextLayer)FindLayer("Name", image);
	// דרך פשוטה לעדכן טקסט
	layerToUpdateText.UpdateText("John Doe");
	// שמור את קובץ ה-PSD המעודכן
	image.Save("updated-psd.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
	// קבל שכבות aa בקובץ PSD
	var layers = image.Layers;
	// מצא את השכבה הרצויה
	foreach (var layer in layers)
	{
		// התאם את שם השכבה
		if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
		{
			return layer;
		}
	}
	return null;
}

להלן צילום המסך של קובץ ה-PSD הקלט בו השתמשנו בדוגמה זו:

מצא שכבה ב-PSD באמצעות C#

להלן קובץ ה-PSD שנוצר עם שכבת טקסט מעודכנת:

עדכן שכבת טקסט ב-PSD באמצעות C#

מצא ועדכן שכבות תמונה בקבצי PSD באמצעות C#

על מנת להתמודד עם אובייקטים גרפיים כגון תמונות, Aspose.PSD עבור .NET חושף את המחלקה Graphics. מחלקה זו משמשת לנקות או לצייר את הגרפיקה בתוך שכבות ה-PSD. להלן השלבים למציאת שכבת PSD ולעדכון התמונה שלה.

  • צור אובייקט מהמחלקה PsdImage כדי לטעון את קובץ ה-PSD.
  • מצא את השכבה בקובץ ה-PSD מאובייקט PsdImage.Layers.
  • טען את התמונה שברצונך לצייר בשכבה באובייקט Stream.
  • צור אובייקט שכבה חדש ואתחול אותו עם אובייקט ה-Stream שנוצר בשלב הקודם.
  • צור מופע של המחלקה Graphics ואתחל אותו בשכבה שתוחלף.
  • נקה את השכבה באמצעות שיטת Graphics.Clear().
  • צייר את התמונה בשכבה בשיטת Graphics.DrawImage(Image, Rectangle).
  • שמור את הקובץ בשיטת PsdImage.Save(String).

דוגמת הקוד הבאה מראה כיצד למצוא ולעדכן שכבות תמונה בקובץ PSD באמצעות C#.

// טען קובץ PSD
using (PsdImage image = (PsdImage)Image.Load(@"updated-psd.psd"))
{
	// בואו נמצא שכבה שאנחנו רוצים להחליף
	var layerToReplace = FindLayer("ProfilePicture", image);

	using (Stream stream = new FileStream(@"avatar.png", FileMode.Open))
	{
		var newLayer = new Layer(stream);
		// ציור של שכבה חדשה על הישנה
		var graphic = new Graphics(layerToReplace);
		graphic.Clear(Color.Empty);
		graphic.DrawImage(newLayer, new Rectangle(new Point(), new Size(layerToReplace.Width, layerToReplace.Height)));
	}
	// שמור את קובץ ה-PSD המעודכן
	image.Save("updated-psd2.psd");
}
//-------------------FindLayer()-------------
public static Layer FindLayer(string layerName, PsdImage image)
{
	// קבל שכבות aa בקובץ PSD
	var layers = image.Layers;
	// מצא את השכבה הרצויה
	foreach (var layer in layers)
	{
		// התאם את שם השכבה
		if (string.Equals(layer.DisplayName, layerName, StringComparison.InvariantCultureIgnoreCase))
		{
			return layer;
		}
	}
	return null;
}

להלן צילום המסך של קובץ ה-PSD לאחר עדכון שכבת התמונה באמצעות הקוד הנ"ל:

עדכון שכבת תמונה ב-PSD באמצעות C#

סיכום

במאמר זה ראינו כיצד למצוא ולעדכן את השכבות בקובץ פוטושופ (PSD) באמצעות C#. המדריך שלב אחר שלב ודוגמאות הקוד מדגימים כיצד למצוא שכבות ולעדכן את הטקסט או התמונה שלהן בקבצי PSD של Photoshop. אתה יכול לחקור עוד על Aspose.PSD עבור .NET באמצעות תיעוד.

ראה גם