עריכת מסכות שכבה רסטר בקובץ PSD דרך API
סקירה
כדי לאוטומטזציה של עריכת פורמט PSD ושינוי קובץ PSD ללא צורך ב- Adobe® Photoshop® ניתן להשתמש ב-API של Aspose.PSD המצוי למטה. ישנם קטעי קוד של C# ו.NET שיכולים לעזור לך לשנות קבצי PSD.
בעזרת מסכי שכבה רסטר ווקטורים אנו מסוגלים להסתיר ולהציג פיקסלי שכבה בלי למחוק אותם לצמיתות. מסכות רסטר נקראים גם מסיכת שכבה או מסיכת משתמש. גישה לשתי המסכות, הרסטרית והוקטורית, ב-Aspose.PSD ניתנת דרך התכונה LayerMaskData וניתן ליישרה כמופע של ‘LayerMaskDataShort’ ו-'LayerMaskDataFull' שהם מחלקות ילד של מחלקת מעבר ‘LayerMaskData’ המופשטת. אם לשכבה יש מסכות רסטר ווקטור אז מסופקת המחלקה LayerMaskDataFull. אם לשכבה יש רק מסך רסטר או וקטור אז מסופקת המחלקה LayerMaskDataShort. אם התכונת LayerMaskData היא ריקה, אז לשכבה אין מסכות או רק מסכת וקטור מבוטלת.
מסכת רסטר ומסכת וקטור מבוטלת - 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
כיצד לבדוק אם מסך שכבה מופעל?
כד