Створення, відкриття та збереження зображень
Створення файлів зображень
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 , передавши об’єкт потоку в його конструктор і присвоївши його властивості 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. Цей метод приймає об’єкт потоку в якості аргумента, щоб відкрити зображення.
// 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 для завантаження зображення як шару. Aspose.PSD APIs надали ефективні та прості у використанні методи для досягнення цієї мети. Aspose.PSD виклав метод AddLayer класу PsdImage для додавання зображення у файл PSD як шар.
Кроки для завантаження зображення у PSD як шар дуже прості:
- Створити екземпляр зображення за допомогою класу PsdImage з вказаною шириною та висотою.
- Завантажити файл PSD як зображення за допомогою фабричного методу Load, що викладений класом Image.
- Створити екземпляр класу Layer та призначити йому шар зображення PSD.
- Додати створений шар, використовуючи метод AddLayer, який надає клас PsdImage.
- Зберегти результат.
// 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 для завантаження зображення як шару з потоку. Щоб завантажити зображення з потоку, просто передайте об’єкт потоку, що містить зображення, конструктору класу Layer. Додайте створений шар за допомогою методу 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 надає вам методи для збереження зображень на диск, вказавши шлях або використовуючи об’єкт потоку.
Збереження на диск
Клас Image представляє об’єкт зображення, отже цей клас надає всі необхідні інструменти для створення, завантаження та збереження файлу зображення. Використовуйте метод Save класу Image для збереження зображень. Одна з перевантажених версій методу Save приймає розташування файлу у вигляді рядка.
// 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()); | |
} |
Збереження в потік
Інша перевантажена версія методу Save приймає об’єкт потоку в якості аргумента та зберігає файл зображення у потік.
Якщо зображення створено, вказавши будь-які з CreateOptions у конструкторі Image, зображення автоматично зберігається за шляхом або потоком, що вказані під час ініціалізації класу Image, викликаючи метод Save, який не приймає параметрів.
// 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" }); | |
} |