יצירת קבצי תמונה

Aspose.PSD עבור .NET מאפשר למפתחים ליצור תמונות משלהם. השתמשו בשיטת Create הסטטית שנמשקת על ידי מחלקת ה-Image על מנת ליצור תמונות חדשות. כל מה שצריך לעשות הוא לספק אובייקט רלוונטי מאחת ממחלקות ה-ImageOptions שבשם מרחב השמות לפורמט תמונה המבוקש. על מנת ליצור קובץ תמונה, יש ליצור תחילה מופע של אחת המחלקות ממרחב השמות ImageOptions. מחלקות אלו קובעות את מבנה פורמט התמונה. להלן מחלקות כמה ממרחב שמות ImageOptions (שים לב כי בינתיים רק משפחת פורמטי קבצי PSD נתמכים ליצירה בלבד):

PsdOptions מגדיר את האפשרויות ליצירת קובץ PSD. ניתן ליצור קבצי תמונה על ידי הגדרת נתיב פלט או על ידי הגדרת זרם.

יצירה על ידי הגדרת נתיב

יצרו PsdOptions ממרחב ה- ImageOptions והגדירו את המאפיינים השונים. המאפיין החשוב ביותר להגדרה הוא המאפיין Source. מאפיין זה מציין איפה נמצאים נתוני התמונה (בקובץ או בזרם). בדוגמה הבאה, המקור הוא קובץ. לאחר הגדרת המאפיינים, העבירו את האובייקט לאחת משיטות הייצור הסטטיות Create יחד עם מוסף הרוחב והגובה. הרוחב והגובה מוגדרים בפיקסלים.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
// Creates an instance of PsdOptions and set its various properties
PsdOptions psdOptions = new PsdOptions();
psdOptions.CompressionMethod = CompressionMethod.RLE;
// Define the source property for the instance of PsdOptions. Second boolean parameter determines if the file is temporal or not
psdOptions.Source = new FileCreateSource(desName, false);
// Creates an instance of Image and call Create method by passing the PsdOptions object
using (Image image = Image.Create(psdOptions, 500, 500))
{
image.Save();
}

יצירה באמצעות זרם

התהליך ליצירת תמונה באמצעות זרם דומה לתהליך של שימוש בנתיב. ההבדל הוא רק שיש ליצור מופע של StreamSource על ידי העברת אובייקט Stream לבוניו והקצאתו למאפיין ה- Source.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string desName = dataDir + "CreatingImageUsingStream_out.bmp";
// Creates an instance of BmpOptions and set its various properties
BmpOptions ImageOptions = new BmpOptions();
ImageOptions.BitsPerPixel = 24;
// Create an instance of System.IO.Stream
Stream stream = new FileStream(dataDir + "sample_out.bmp", FileMode.Create);
// Define the source property for the instance of BmpOptions Second boolean parameter determines if the Stream is disposed once get out of scope
ImageOptions.Source = new StreamSource(stream, true);
// Creates an instance of Image and call Create method by passing the BmpOptions object
using (Image image = Image.Create(ImageOptions, 500, 500))
{
// Do some image processing
image.Save(desName);
}

פתיחת קבצי תמונה

מפתחים יכולים להשתמש ב-API של Aspose.PSD עבור .NET כדי לפתוח קבצי תמונה PSD קיימים לצורכים שונים, כמו הוספת אפקטים לתמונה או להמיר קובץ קיים לפורמט אחר. למרות מטרת השימוש, Aspose.PSD מציע שני דרכים סטנדרטיות לפתיחת קבצים קיימים: מקובץ או מזרם.

פתיחה מתוך דיסק

לפתוח קובץ תמונה על ידי מעבר נתיב הקובץ והשם כפרמטר לשיטת ה- Load הסטטית שנמשקת על ידי מחלקת ה- Image.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(sourceFile))
{
PsdImage psdImage = (PsdImage)image;
psdImage.Save(destName, new PngOptions());
}

פתיחה באמצעות זרם

לפעמים התמונה שצריך לפתוח מאוחסנת כזרם. במקרים כאלה, השתמשו בגרסה כפולה של השיטת Load. פונקציה זו מקבלת אובייקט Stream כארגומנט על מנת לפתוח את התמונה.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
FileStream fStream = new FileStream(sourceFile, FileMode.Open);
fStream.Position = 0;
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(fStream))
{
PsdImage psdImage = (PsdImage)image;
MemoryStream stream = new MemoryStream();
psdImage.Save(stream, new PngOptions());
}

טעינת תמונה כשכבה

מאמר זה מדגים את השימוש ב-Aspose.PSD לטעינת תמונה כשכבה. ה- APIs של Aspose.PSD חשפו שיטות יעילות וקלות לשימוש כדי להשיג מטרה זו. Aspose.PSD חשפו את השיטה AddLayer של מחלקת PsdImage כדי להוסיף תמונה לתוך קובץ PSD כשכבה.

השלבים לטעינת תמונה אל PSD כשכבה הם כפי שלמטה:

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string filePath = dataDir + "PsdExample.psd";
string outputFilePath = dataDir + "PsdResult.psd";
using (var image = new PsdImage(200, 200))
{
using (var im = Image.Load(filePath))
{
Layer layer = null;
try
{
layer = new Layer((RasterImage)im);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw;
}
}
image.Save(outputFilePath);
}

טעינת תמונה כשכבה מזרם

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

כאן קישור לקוד לדוגמא.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string outputFilePath = dataDir + "PsdResult.psd";
var filesList = new string[]
{
"PsdExample.psd",
"BmpExample.bmp",
"GifExample.gif",
"Jpeg2000Example.jpf",
"JpegExample.jpg",
"PngExample.png",
"TiffExample.tif",
};
using (var image = new PsdImage(200, 200))
{
foreach (var fileName in filesList)
{
string filePath = dataDir + fileName;
using (var stream = new FileStream(filePath, FileMode.Open))
{
Layer layer = null;
try
{
layer = new Layer(stream);
image.AddLayer(layer);
}
catch (Exception e)
{
if (layer != null)
{
layer.Dispose();
}
throw e;
}
}
}
image.Save(outputFilePath);
}

שמירת קבצי תמונה

‏Aspose.PSD מאפשר לך ליצור קבצי תמונה מאפס. זה מספק גם את האמצעים לעריכת קבצי תמונה קיימים. פרט לעת צורה התמונה נשמרת לרוב בדיסק. Aspose.PSD נותן לך שיטות לשמירת תמונות לדיסק באמצעות ציון של נתיב או באמצעות אובייקט Stream.

שמירה לדיסק

מחלקת ה-Image מייצגת אובייקט תמונה, כך שמחלקה זו מספקת את כל הכלים הדרושים ליצירה, טעינה ושמירת קובץ תמונה. השתמשו בשיטת השמירה של Image כדי לשמור תמונות. גרסה מועמתת אחת של השיטת שמירה מקבלת מיקום קובץ כמחרוזת.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(sourceFile))
{
PsdImage psdImage = (PsdImage)image;
psdImage.Save(destName, new PngOptions());
}

שמירה לזרם

‏גרסה שניה מועמתת של השיטת שמירה מקבלת את אובייקט הזרם כארגומנט ושומרת את קובץ התמונה לזרם.

אם התמונה נוצרה על ידי ציון אחד ממחלקות ה-CreateOptions בבניית התמונה, התמונה נשמרת אוטומטית לנתיב או לזרם המסופקים במהלך אתחול מחלקת ה-Image על ידי קריאה לשיטת השמירה שאינה מקבלת שום פרמטר.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFile = dataDir + @"sample.psd";
string destName = dataDir + "result.png";
// load PSD image and replace the non found fonts.
using (Image image = Image.Load(sourceFile))
{
PsdImage psdImage = (PsdImage)image;
MemoryStream stream = new MemoryStream();
psdImage.Save(stream, new PngOptions());
}

הגדרה להחלפת גופני פונט חסרים

מפתחים יכולים להשתמש ב-API של Aspose.PSD עבור .NET כדי לטעון קבצי תמונת PSD קיימים לצרכים שונים, לדוגמה, להגדיר שם של גופן ברירת מחדל בעת שמירת מסמכי PSD כתמונה רסטר (לתוך פורמטים PNG, JPG ו-BMP). שם של גופן ברירת מחדל זה ישמש כהחלפה לכל הגופנים החסרים (גופנים שאינם נמצאים במערכת ההפעלה הנוכחית). לאחר שהתמונה נערכה, הקובץ נשמר על דיסק.

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
string sourceFileName = "sample_konstanting.psd";
string[] outputs = new string[]
{
"replacedfont0.tiff",
"replacedfont1.png",
"replacedfont2.jpg"
};
using (PsdImage image = (PsdImage)Image.Load(sourceFileName, new PsdLoadOptions()))
{
// This way you can use different fonts for different outputs
image.Save(outputs[0], new TiffOptions(TiffExpectedFormat.TiffJpegRgb) { DefaultReplacementFont = "Arial" });
image.Save(outputs[1], new PngOptions { DefaultReplacementFont = "Verdana" });
image.Save(outputs[2], new JpegOptions { DefaultReplacementFont = "Times New Roman" });
}