עיבוד נתוני פיקסלים באמצעות Aspose.PSD עבור Python
מבוא
Aspose.PSD היא ספריה חזקה שמאפשרת לך לעבוד עם קבצי Adobe Photoshop (PSD) ב-Python. במאמר זה, נסקור כיצד לשנות נתוני פיקסלים בקובץ PSD באמצעות Aspose.PSD.
סקירה
הקוד שסופק מדגים כיצד ליצור קובץ PSD, להוסיף שכבה חדשה ולאחר מכן לשנות ישירות את נתוני הפיקסלים, ולשמור את התמונה ששונתה.
ייבוא מודולים נדרשים: השלב הראשון הוא לייבא את המודולים הנחוצים. אנו מייבאים את המודול BytesIO מהספרייה io, וכן את המחלקות PsdImage ו-Layer מהמודולים aspose.psd.fileformats.psd ו-aspose.psd.fileformats.psd.layers בהתאמה.
לאחר מכן, אנו מגדירים את נתיבי קובץ הקלט והפלט.
פתיחת קובץ הקלט כזרם: אנו פותחים את קובץ הקלט כזרם באמצעות הפונקציה open ומצב ה-“rb”. פרמטר הבלימה מוגדר ל-0 כדי להשבית את הבלימה. תוכן הקובץ נקרא לתוך זרם BytesIO והזרם מוגדר לתחילתו באמצעות stream.seek(0).
אנו יוצרים אובייקט שכבת PSD על ידי העברת הזרם לבונה של המחלקה Layer.
אנו יוצרים תמונת PSD חדשה באמצעות בונה של המחלקה PsdImage ומספקים את הרוחב והגובה של השכבה כארגומנטים.
אנו מייענים את השכבה למאפייני השכבות של תמונת ה-PSD באמצעות אופרטור ההשמה (=).
כדי לשנות את נתוני הפיקסלים, אנו טוענים בראשון את הפיקסלים ARGB32 מהשכבה באמצעות שיטת load_argb_32_pixels. אנו שומרים את התוצאה במשתנה הפיקסלים.
לאחר מכן אנו מגדירים טווח אינדקסים (pixelsRange) על סמך אורך מערך הפיקסלים. אנו משטחים על פני האינדקסים ובודקים אם אינדקס הוא חלקי של 5. אם כן, אנו מגדירים את ערך הפיקסל באינדקס זה ל-500000. לכן, אנו רוצים רק ליצור דפוס חוזר. ניתן לשנות את נתוני הפיקסלים בהתאם לרצונך.
לאחר מכן אנו שומרים את נתוני הפיקסלים ששונו בחזרה לשכבה באמצעות שיטת save_argb_32_pixels.
לבסוף, אנו שומרים את תמונת ה-PSD לקובץ הפלט באמצעות השימור של השיטה.
במאמר זה, חיקרנו כיצד לשנות נתוני פיקסלים בקובץ PSD באמצעות Aspose.PSD עבור Python. על ידי הבנת הקוד שסופק, ניתן לבצע פעולות ברמת הפיקסלים שונות, כגון שינוי פיקסלים על פי תנאים מסוימים. Aspose.PSD מספק סט כלים מקיף לעבודה עם קבצי PSD באמצעות תכנות, ומהווה כלי ערך למשימות עיבוד תמונות ב-Python.
יש לשים לב שהקוד שסופק מניח שכבר התקנת את ספריית Aspose.PSD ואת התלויות שלה. ניתן למצוא מידע נוסף איך להתקין ולהשתמש ב-Aspose.PSD עבור Python במסמך המצויין.
נא לבדוק את הדוגמה המלאה.
דוגמה
from io import BytesIO | |
from aspose.psd.fileformats.psd import PsdImage | |
from aspose.psd.fileformats.psd.layers import Layer | |
inputFile = "inputFile.png" | |
outputFile = "AddFileAsLayer.psd" | |
# Open file as Stream | |
with open(inputFile, "rb", buffering=0) as filestream: | |
stream = BytesIO(filestream.read()) | |
stream.seek(0) | |
# Create PSD Layer from Stream | |
layer = Layer(stream) | |
# Create PSD Image with the specified size | |
psdImage = PsdImage(layer.width, layer.height) | |
# Add Layer to PSD Image | |
psdImage.layers = [layer] | |
# Get Pixels from File | |
pixels = layer.load_argb_32_pixels(layer.bounds) | |
pixelsRange = range(len(pixels)) | |
# Fill the pixels data with some values | |
for i in pixelsRange: | |
if i % 5 == 0: | |
pixels[i] = 500000 | |
# Fast Save of Updated Image Data | |
layer.save_argb_32_pixels(layer.bounds, pixels) | |
# Save PSD Image | |
psdImage.save(outputFile) |