עריכת מסכות שכבה רסטר בקובץ PSD דרך API

סקירה

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

בעזרת מסכי שכבה רסטר ווקטורים אנו מסוגלים להסתיר ולהציג פיקסלי שכבה בלי למחוק אותם לצמיתות. מסכות רסטר נקראים גם מסיכת שכבה או מסיכת משתמש. גישה לשתי המסכות, הרסטרית והוקטורית, ב-Aspose.PSD ניתנת דרך התכונה LayerMaskData וניתן ליישרה כמופע של ‘LayerMaskDataShort’ ו-'LayerMaskDataFull' שהם מחלקות ילד של מחלקת מעבר ‘LayerMaskData’ המופשטת. אם לשכבה יש מסכות רסטר ווקטור אז מסופקת המחלקה LayerMaskDataFull. אם לשכבה יש רק מסך רסטר או וקטור אז מסופקת המחלקה LayerMaskDataShort. אם התכונת LayerMaskData היא ריקה, אז לשכבה אין מסכות או רק מסכת וקטור מבוטלת.

todo:image_alt_text

מסכת רסטר ומסכת וקטור מבוטלת - LayerMaskDataShort

מסכת רסטר מושבתת - LayerMaskDataShort

מסכת רסטר ומסכת וקטור - LayerMaskDataFull

מסכת רסטר - LayerMaskDataShort

מסכת וקטור - LayerMaskDataShort

מסכת וקטור מבוטלת (אך המשאב של הווקטור נמצא)

כיצד לקבל מסכת שכבת רסטר בקובץ PSD?

לפני הכל, עלינו לגלות אם לשכבה יש מסכת ווקטור ומסכות שכבה:

בקוד הדוגמא המצורף מתואר איך לקבל מסכת רסטר בשכבה.

אחרת, סוג השכבת תכונת השכבת LayerMaskData היא LayerMaskDataShort. במקרה זה, נבדוק האם לשכבה יש רק מסך רסטר על ידי בדיקת המאפיין של הדגלים. הוא לא צריך להכיל את הדגל UserMaskFromRenderingOtherData, אחרת המסך הוא מטמש וקטורי.

קטע הקוד לקבלת המסך:

אם תרצה לחלץ מסך רסטר כ-LayerMaskDataShort (לצורך עיבוד נוסף) גם כאשר שתי המסכות נמצאות, עליך לחלץ את LayerMaskDataFull ולהמיר אותו ל-LayerMaskDataShort. הקוד הבא יכול לשמש לשני המקרים:

חילוץ של מסך רסטר מ-PSD

כיצד לבדוק אם לשכבה בקובץ PSD יש מסכת רסטר?

הקוד הבא ב- C# עשוי לעזור לך לבדוק אם לשכבה יש מסכת רסטר:

כיצד לדעת אם מסך רסטר מוחל על שכבת PSD

כיצד להסיר / להוסיף / לעדכן מסכת שכבת רסטר בקובץ PSD?

רק להסיר / להוסיף / לעדכן את LayerMaskData אינו מספיק לשמירה תקינה מאחר שהערוצים אינם מעודכנים; אף על פי שזה עשוי לספק עיבוד נכון. זה לא משנה את הערוצים של המסך:

עלינו להשתמש בשיטת הוספת שכבת מסך להסרה / הוספה / עדכון.

זה מוסיף / מעדכן שני המסכות והערוצים:

זה מוריד את שני המסכים והערוצים:

הסרת מסכת שכבת רסטר בתמונת ה-PSD

לפני הכל, נבדוק אם המסך נמצא בפורמט קצר ואם אינו מסך וקטורי ניתן פשוט לקרוא לשיטה AddLayerMask עם ערך null כדי למחוק את המסך הרסטר. אם המסך נמצא בפורמט מלא, עלינו להמיר אותו לפורמט קצר ולהשאיר רק את המסך הוקטורי. למחיקת מסכה בעזרת קטע קוד ב-C# .NET ניתן להשתמש בקטע הבא:

קטע קוד איך להסיר מסך שכבה מקובץ PSD.

עדכון מסכת שכבת רסטר בתמונת ה-PSD

זה יחודי: אם המסך נמצא בפורמט קצר עלינו לשנות את ImageData ואת MaskRectangle כראוי, אחרת צריך לשנות את UserMaskData ואת UserMaskRectangle. קטע הקוד הבא ב-C# .NET יכול לשמש לעדכון של מסך שכבה:

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

נה דוגמה לפעולות אפשריות שמשנות מסך רסטר. זו הפוכה של מסך משתמש בשכבה:

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

עדכון מסכת וקטור בקובץ PSD כאשר נמצאת מסך שכבת רסטר

נניח שמשתמש כבר שינה משאב וקטורי. לאחר מכן, הוא יכול לעדכן את מסך הוקטור פשוט על ידי קריאה לשיטת AddLayerMask:

עדכון מסך הוקטור של שכבת PSD עם C#

הוספת מסך שכבת רסטר בקובץ PSD

אם לשכבה יש ללא מסך, ניתן להוסיף את המסך הרסטר הנתון בקלות על ידי קריאה לשיטת AddLayerMask.

אם המסך אינו מעיני UserMaskFromRenderingOtherData כבר יש לו מסך רסטר ועלינו לעדכנו כפי שנתון למעלה. אם כן, אם המסך הזה נמצא בפורמט קצר נמיר אותו לפורמט מלא. אם לא, אנו משתמשים בו כמוצא. לאחר מכן עלינו לעדכן את UserMaskData, UserMaskRectangle ותכונות אחרות עם תכונות המסך הנתונות. קטע הקוד הבא ב-C# .NET יכול לשמש להוספה (עדכון) מסך שכבה:

הוספת מסך שכבה חדש ל-PSD

כיצד לבדוק אם מסך שכבה מופעל?

כד